Geteilte Zeichenfolge beim ersten Auftreten jedes Zeichens


45

Verbunden.

Teilen Sie eine druckbare ASCII-Zeichenfolge in eine Liste nicht leerer Zeichenfolgen mit einer neuen Unterzeichenfolge auf, die jedes Mal beginnt, wenn ein Zeichen auftritt, das zuvor nicht im selben Fall gesehen wurde.

Beispiele

"mississippi" → ["m","i","ssissi","ppi"]

"P P & C G" → ["P"," P ","& ","C ","G"]

"AAA" → ["AAA"]

"Adam" → ["A","d","a","m"]

"" → []


Anekdote : Das Ergebnis wird zwischen 0 und 95 Elemente haben. Die 95 - ten Unterkette notwendigerweise bis zum Ende fortgesetzt werden, da zu diesem Zeitpunkt alle druckbaren ASCII - Zeichen eine Unterkette begonnen haben, so dass jedes zusätzliche Zeichen vor aufgetreten sind und somit kein neues Unterkette beginnen führen kann.


1
Ein Beispiel mit "und 'scheint eine gute Idee zu sein.
Emigna

Wäre ""[""]akzeptabel?
Arnauld

5
@Emigna Das verwirrt nur das Beispiel-Ausgabeformat, ohne weitere Klarheit zu bringen.
Adám

1
Kann es bei der Ausgabe als durch Zeilenumbrüche getrennte Zeichenfolge eine führende / nachfolgende Zeile geben?
Wastl

2
@wastl Äh, ich werde es in diesem Fall zulassen, weil es keine leeren Segmente anzeigen kann, obwohl es mit meiner früheren Entscheidung [""], ungültig zu sein, nicht übereinstimmt. Seufzer.
Adám

Antworten:


22

Gelee , 4 Bytes

QƤĠị

Probieren Sie es online!

Erläuterung

QƤĠị  Input is a string, say s = "adam"
 Ƥ    For each prefix of s: ["a","ad","ada","adam"]
Q     remove duplicates: ["a","ad","ad","adm"]
  Ġ   Group indices by equal values: [[1],[2,3],[4]]
   ị  Index into s: ["a","da","m"]

Die interne Darstellung der Strings, die der TIO-Link anzeigt, unterscheidet sich geringfügig.


10

Netzhaut , 9 Bytes

q1,`.
¶$&

Probieren Sie es online!

Erläuterung

Passen Sie jedes Zeichen an ( .), verwerfen Sie wiederholte Übereinstimmungen ( q), verwerfen Sie die erste Übereinstimmung ( 1,) und fügen Sie einen Zeilenvorschub vor jeder Übereinstimmung ein ¶$&.


6

05AB1E , 11 Bytes

ÙSk¥sg¸«£õK

Probieren Sie es online!

Erläuterung

Ù             # remove duplicates in input
 S            # split to a list of characters
  k           # get the (first) index of each character in the input
   ¥          # calculate delta's
    sg¸«      # append the length of the input
        £     # split the list into pieces of these sizes
         õK   # remove empty string (for the special case "" -> [])

1
Wer auf diese Antwort stößt , ¸«kann ªin der neuen Version von 05AB1E sein.
Kevin Cruijssen

6

C  75   65  63 Bytes

Danke an @Digital Trauma für das Speichern von 10 Bytes und danke an @gastropner und @ l4m2 für das Speichern von jeweils einem Byte!

f(char*s){for(int l[128]={};*s;putchar(*s++))l[*s]++||puts(l);}

Druckt eine führende Newline.

Probieren Sie es online!

Ohne führende Newline (71 Bytes):

f(char*s){int l[128]={};for(l[*s]=1;*s;putchar(*s++))l[*s]++||puts(l);}

Probieren Sie es online!



@ Gastropner Cleverer Trick; Vielen Dank!
Steadybox

{0}=> {}?
14.

@ l4m2 Ja, danke!
Steadybox

5

Perl 6 ,  58 52  40 Bytes

{$/={};.comb.classify({$+=!$/{$_}++}).sort».value».join}

Versuch es

*.comb.classify({$+=!(%){$_}++}).sort».value».join

Versuch es

*.classify({$+=!(%){$_}++}).sort».value

Probieren Sie es aus
(Eingabe ist eine Liste von Zeichen und Ausgabe ist eine Liste von Listen von Zeichen)

Erweitert:

*                   # parameter for WhateverCode lambda

  .classify(        # classify that list
    {
        $           # anonymous scalar state variable (accumulator)

      +=            # increment it if:

        !           # Bool invert the following
          (
            %       # anonymous hash state variable
          ){ $_ }++ # look to see if the character was seen already
    }
  ).sort\           # sort the Pairs by key (makes the order correct)
  ».value           # get the value from each Pair

Die Ausgabe von classifyist

{ # Hash
  1 => ['m'],
  2 => ['i'],
  3 => ['s','s','i','s','s','i'],
  4 => ['p','p','i'],
}

Und .sortverwandelt es einfach in:

[
  1 => ['m'],
  2 => ['i'],
  3 => ['s','s','i','s','s','i'],
  4 => ['p','p','i'],
]

».value Entfernt die Schlüssel

[
  ['m'],
  ['i'],
  ['s','s','i','s','s','i'],
  ['p','p','i'],
]

Warum würden die Schlüssel jemals außer Betrieb sein? Wird die Einfügereihenfolge in Java nicht wie eine HashMapvs. a verfolgt, LinkedHashMapwobei die Reihenfolge auf der Reihenfolge von Speicher vs.
Magic Octopus Urn

1
@MagicOctopusUrn Keine Version von Perl hat Hashes bestellt. Tatsächlich hat Perl 5, Version 18, Hashes zufälliger gemacht, was dazu beiträgt, eine bestimmte Art von Denial-of-Service-Angriff weniger möglich zu machen, und dazu geführt, dass fehlerhafter Benutzercode das fehlerhafte Verhalten häufiger aufdeckt. Jetzt könnte (und muss wahrscheinlich) jemand eine Klasse implementieren, die den Überblick behält, aber das Laden und Verwenden dieser Klasse würde mehr als 5 Zeichen erfordern.
Brad Gilbert b2gills

5

J , 7 Bytes

~:<;.1]

Probieren Sie es online!

Erläuterung

Nubsiebs Chance zu glänzen!

~: <;.1 ]
        ]  Input
~:         Nub sieve (1 if the character is the first instance in string)
    ;.1    Split input on 1s in nub sieve
   <       And box each

2
Ich wollte gerade genau die gleiche (nicht überraschend) Antwort posten. Es ist gut, dass ich mir vorher Ihren Beitrag angesehen habe :)
Galen Ivanov,

2
@GalenIvanov Ich - und ich stelle mir auch die meisten anderen J-Golfer vor - genieße die Möglichkeit, ein Noppensieb zu verwenden oder sich selbst zu klassifizieren.
Cole

5

Aber, aber ... Oh mein Gott.
Adám

Ich habe vermutet, dass Sie diese Herausforderung aufgrund des neuen Grundelements (⊆) gestellt haben. Offensichtlich nicht :)
ngn

Es sieht aus wie eine verlegene Kirby, die eine Babyflasche in der Hand hält.
Magic Octopus Urn

Für alle, die "Kirby" wie ich nachschlagen müssen - es ist ein anthropomorpher rosa Ball aus einem japanischen Videospiel
Uhr

5

05AB1E , 8 Bytes

Ùvyy¶ì.;

Probieren Sie es online!


Wird immer 1 vorangestellte Newline ausgegeben, was konstant ist und keinen Split anzeigt. Die 10-Byte-Alternative, die keine vorangestellte Newline ausgibt, ist Ùvyy¶ì.;}¦. Sie können dies hier versuchen . Laut Adam ist eine vorangestellte oder nachfolgende Zeile akzeptabel.


Input      = mississippi                               | Stack
-----------#-------------------------------------------+----------------------------------
Ù          # Push unique letters of first input.       | ['misp']
 v         # Iterate through each unique letter.       | []
  yy       # Push 2 copies of the letter (or yD)       | ['m','m']
    ¶      # Push a newline char.                      | ['m','m','\n']
     ì     # Prepended to the letter.                  | ['m','\nm']
      .;   # Replace first instance with '\n + letter' | ['\nmississippi']

Nach jeder Iteration erhalten wir:

['\nmississippi'] > ['\nm\nississippi'] > ['\nm\ni\nssissippi'] > ['\nm\ni\nssissi\nppi']

Welches ist:

m
i
ssissi
ppi

Nett!
Schlagen Sie

@Emigna das war 2 Tage lang ein Kommentar zu deiner Antwort, dann habe ich es gerade gepostet b / c keine Antwort haha: P.
Magic Octopus Urn

Komisch, ich habe keine Benachrichtigung darüber gesehen. Anders genug für eine eigene Antwort :)
Emigna

@Emigna gut, ich meine, ich habe es gelöscht haha.
Magic Octopus Urn

Durch Überspringen der Schleife wird ein Byte gespeichert ÙSD¶ì.;. Ich
bin

5

Haskell , 39 Bytes

foldl(\s c->s++['\n'|all(/=c)s]++[c])""

Probieren Sie es online!

Fügt vor jedem Zeichen, das zum ersten Mal angezeigt wird, ein Zeilenumbruchsymbol ein. Dies führt zu einer durch Zeilenumbrüche getrennten Zeichenfolge mit einem führenden Zeilenumbruch. Bereiten Sie vor lines., um eine Liste zu erstellen.


Haskell , 55 Bytes

(""%)
_%[]=[]
p%s|(a,b)<-span(`elem`s!!0:p)s=a:(a++p)%b

Probieren Sie es online!

Nimmt wiederholt das Präfix des ersten Zeichens und die darauf folgenden nicht eindeutigen Zeichen.


@WheatWizard Hoppla, ja lines.
xnor

Vielleicht möchten Sie tail.linesdie zusätzliche leere Zeichenfolge jetzt entfernen, wenn ich darüber nachdenke.
Weizen-Assistent

4

APL (Dyalog) , 9 Bytes

Danke, Erik der Outgolfer, für das Speichern von 1 Byte!

⊢⊂⍨⍳∘≢∊⍳⍨

Probieren Sie es online!

Erläuterung:

⍳⍨: Ruft für jedes Zeichen den Index seines ersten Auftretens ab. z.Bmississippi -> 1 2 3 3 2 3 3 2 9 9 2

⍳∘≢: Der Bereich von 1 bis zur Länge der Eingabe.

: Mitgliedschaft. z.B1 2 3 4 5 6 7 8 9 10 11∊1 2 3 3 2 3 3 2 9 9 2 -> 1 1 1 0 0 0 0 0 1 0 0

⊢⊂⍨: Partitionieren Sie die Eingabezeichenfolge mit neuen Partitionen, die bei 1s im obigen Vektor beginnen


9 Bytes (monadisch fgund monadisch f∘gverhalten sich gleich)
Erik der Outgolfer

Warum statt =?
Adám

Zum Zeitpunkt des Schreibens hatte ich nicht daran gedacht, dass sich die Indizes an den richtigen Positionen befinden würden. Obwohl es klar ist, dass sie sind
H.PWiz

4

Japt , 11 Bytes

‰ r@=iRUbY

Online testen!

Erläuterung

Dies wurde inspiriert durch Magie Octopus Urn ‚s 05AB1E Lösung .

‰ r@=iRUbY    Implicit: U = input string
‰             Split U into chars, and keep only the first occurrence of each.
   r@          Reduce; for each char Y in this string...
        UbY      Find the first index of Y in U.
      iR         Insert a newline at this index in U.
     =           Set U to the result.
               As reduce returns the result of the last function call, this gives the
               value of U after the final replacement, which is implicitly printed.

1
Japt hat hier eine Identitätskrise, sie nennt sich aus irgendeinem Grund Ruby. iRUbY!
Magic Octopus Urn

3

JavaScript (ES6), 37 Byte

7 Bytes gespart: ein führender Zeilenumbruch wurde ausdrücklich erlaubt (Danke @Shaggy!)

Nimmt die Eingabe als Array von Zeichen. Gibt eine durch Zeilenumbrüche getrennte Zeichenfolge aus.

s=>s.map(c=>s[c]=s[c]?c:`
`+c).join``

Testfälle



3

Brainfuck, 66 Bytes

,[>+[<[>+<<-<+>>-]>[>]<<[[+]++++++++++.>>>]<]<[>+<-]>>>[>>]<<-.>,]

Formatiert:

,
[
  >+
  [
    <[>+< <-<+>>-]
    >[>]
    <<[[+]++++++++++.>>>]
    <
  ]
  <[>+<-]
  >>>[>>]
  <<-.>,
]

Probieren Sie es online aus

Die führende neue Zeile in der Ausgabe (die nur gedruckt wird, wenn die Eingabe nicht leer ist) kann auf Kosten von 5 Byte entfernt werden, indem xder Hauptteil der (äußersten) Schleife durch ersetzt wird .>,[x].



2

K4 , 19 Bytes

Lösung:

$[#x;(*:'.=x)_;,]x:

Beispiele:

q)k)$[#x;(*:'.=x)_;,]x:"mississippi"
,"m"
,"i"
"ssissi"
"ppi"
q)k)$[#x;(*:'.=x)_;,]x:"P P & C G"
,"P"
" P "
"& "
"C "
,"G"
q)k)$[#x;(*:'.=x)_;,]x:"AAA"
"AAA"
q)k)$[#x;(*:'.=x)_;,]x:"Adam"
,"A"
,"d"
,"a"
,"m"
q)k)$[#x;(*:'.=x)_;,]x:""
,[""]

Erläuterung:

8 Bytes ist nur zu handhaben ""...

$[#x;(*:'.=x)_;,]x: / the solution
                 x: / save input as variable x
$[  ;         ; ]   / $[condition;true;false]
  #x                / length of x ("" has length 0, i.e. false)
             _      / cut right at left indices
     (      )       / do together
          =x        / group x into key/value (char!indices)
         .          / return value (get indices)
      *:'           / first (*:) each
               ,    / enlist, "" => [""]

2

Python 2 , 81 74 Bytes

def f(s):d=sorted(map(s.find,set(s)));print map(lambda a,b:s[a:b],d,d[1:])

Probieren Sie es online!



@ JonathanAllan es ist ein irreführender Nebeneffekt, sethalten Sie nicht die Ordnung, Gegenbeweis ->s='c'*6+'a'*100+'b'
Rod

Ich weiß, dass wir uns bei zukünftigen Implementierungen nicht darauf verlassen können, aber ich glaube , dass bei gegebenen geordneten Ganzzahlen die Reihenfolge in der Menge beibehalten wird, da der Hash einer Ganzzahl die Ganzzahl ist (wie Sie gezeigt haben, gilt dies nicht für andere Objekte - können Sie feststellen) ein Wort, das mit meiner Alternative nicht funktioniert?).
Jonathan Allan

@ JonathanAllan auch nicht wahr
Rod

Ah, fair genug, mein Glaube war falsch!
Jonathan Allan


2

Perl, 30 Bytes

Enthält +1fürp

Geben Sie in STDIN eine Eingabe ohne Zeilenumbruch ein. Die Ausgabe erfolgt auch ohne Zeilenumbruch:

echo -n adam | perl -pE 's%.%$v{$&}+++!pos?$&:$/.$&%eg'; echo

Wenn Sie kümmern sich nicht um führende und neue Zeilen dieses Hinter 25( +3für , -pda der Code enthält ') auch funktioniert:

#!/usr/bin/perl -p
s%%$/x!$v{$'&~v0}++%eg

Tolle Lösung wie immer! Basierend auf den bereitgestellten Testfällen müssen Sie Ihren Hash nicht benennen, das können Sie ${$&}++. Es ist nicht so robust, könnte aber für diese Herausforderung ausreichen? Es gab auch einen Konsens über Meta, perl -pder kein zusätzliches Byte benötigt, Perl with `-p` sondern nur den Header anstelle von Perl. Ich versuche mich daran zu erinnern, dass ich das selbst mache ...
Dom Hastings

@DomHastings Die Annekdote über höchstens 95 mögliche Zeichenketten impliziert ziemlich stark, dass dies 1gültig ist. In diesem Fall vwird die benötigt. In Bezug auf das Zählen folge ich meistens codegolf.meta.stackexchange.com/a/7539/51507, was für mich der beständigste Meta-Post zum Zählen von Perl ist.
Ton Hospel

Immer schön vom Meister zu lernen. Speziell in diesem Fall &~v0zum Erfassen des ersten Zeichens. Vielen Dank, dass Sie dieser Website beigetreten sind und Ihr langjähriges Fachwissen geteilt haben.
msh210

Sie können Strawberry Perl verwenden, das "anstelle von 'with verwendet wird -e, und dann können Sie das -epals +1 statt +3 zählen. (Getestet.)
msh210

2

JavaScript, 61 54 52 Bytes

Nimmt die Eingabe als Array von Zeichen.

s=>s.map(x=>a[x]?a[y]+=x:a[x]=a[++y]=x,a=[],y=-1)&&a

Versuch es

o.innerText=JSON.stringify((f=
s=>s.map(x=>a[x]?a[y]+=x:a[x]=a[++y]=x,a=[],y=-1)&&a
)([...i.value=""]));oninput=_=>o.innerText=JSON.stringify(f([...i.value]))
<input id=i><pre id=o></pre>


2

R , 94 87 Bytes

function(s,n=nchar(s),g=substring)g(s,d<-which(!duplicated(g(s,1:n,1:n))),c(d[-1]-1,n))

Probieren Sie es online!

Gibt eine (möglicherweise leere) Liste von Teilzeichenfolgen zurück.

Vielen Dank an Michael M für das Speichern von 7 Bytes!


3
function(s,n=nchar(s),g=substring)g(s,d<-which(!duplicated(g(s,1:n,1:n))),c(d[-1]-1,n))wäre kürzer - und natürlich ein bisschen hässlicher ...
Michael M

Warum substringstatt substr?
Plannapus

@MichaelM Sehr schön! Ich muss da noch den rein hinzufügen, if(n)da substringwirft ein Fehler bei leerer Zeichenketteneingabe auf.
Giuseppe

1
@plannapus substrgibt einen Längenvektor zurück, der der ersten Eingabe entspricht, während substringder Längenvektor der längsten Eingabe entspricht.
Giuseppe

@ Giuseppe: Das Löschen des "if (n)" in R 3.4.3 ordnet die leere Eingabezeichenfolge "" der leeren Ausgabezeichenfolge "" zu, die in Ordnung sein sollte (?)
Michael M

2

Stax , 8 Bytes

ç↓‼►▐NVh

Online ausführen und debuggen

Die ASCII-Darstellung des gleichen Programms ist dies.

c{[Ii=}(m

Für jedes Zeichen wird geteilt, wenn der Index des aktuellen Zeichens die aktuelle Position ist.

c            copy the input
 {    }(     split the string when the result of the enclosed block is truthy
  [          duplicate the input string under the top of the stack
   I         get the character index of the current character
    i=       is it equal to the iteration index?
        m    print each substring

2

> <> , 22 17 14 Bytes

-1 Byte danke an Emigna

i:::a$1g?!o1po

Probieren Sie es online!

Gibt eine führende und eine nachfolgende Zeile aus.

Es verfolgt, welche Buchstaben bereits aufgetaucht sind, indem peine Kopie des Zeichens an der entsprechenden Stelle in der zweiten Zeile eingefügt und eine neue Zeile gedruckt wird, wenn der von dieser Position abgerufene Wert nicht 1 war-1


Gute Verwendung von g/p! 16 Bytes
Emigna


1

JavaScript (ES6), 68 Byte

s=>s.map(c=>o[c]?t+=c:(t&&m.push(t),t=o[c]=c),t='',o=m=[])&&[...m,t]

Übernimmt die Eingabe als Liste von Zeichen.

Testfälle:


Ich hatte eine ähnliche Lösung und fragte, ob dies [""]für den letzten Testfall akzeptabel sei. Ist es aber nicht . :-(
Arnauld

Na ja, du hast sowieso eine viel bessere Lösung:)
Rick Hitchcock

1

PHP, 317 Bytes

function SplitOnFirstUnique($s){
    $len = strlen($s); 
    $output = [];
    $newstring = '';
    for ($i=0; $i < $len ; $i++) { 
        $newstring = $newstring.$s[$i];
        if(!in_array($s[$i] , $output  )){
            $output[] = $newstring;
            $newstring = '';
        }
    }
    return $output;
}

Probieren Sie es online!


2
Hallo und willkommen bei PPCG! Ich habe Ihren Beitrag in unserem Standardformat bearbeitet und einen Link zu Try It Online hinzugefügt, damit andere Personen Ihren Code testen können. Das Ziel von Code Golf ist es, den kürzestmöglichen Code zu schreiben, und ich kann ein paar Möglichkeiten finden, dies zu verkürzen, wie kürzere Variablennamen zu verwenden und etwas Leerzeichen wegzulassen. Auf den Seiten mit allgemeinen Tipps und PHP-Tipps finden Sie weitere Ideen.
Kein Baum

1

Rot , 79 Bytes

func[s][foreach c next unique/case append s"^@"[print copy/part s s: find s c]]

Probieren Sie es online!

Ungolfed:

f: func [s] [
    b: next unique/case append s "^@"  ; append `null` to the end of the string, than
                                       ; find the unique characters and 
                                       ; store all except the first to b  
    foreach c b [                      ; for each character in b
        print copy/part s s: find s c  ; print the part of the string to
                                       ; where the character is found and
                                       ; set the beginning of the string to that position
    ]
] 

1

SNOBOL4 (CSNOBOL4) , 115 91 77 Bytes

	N =INPUT
S	N LEN(1) . Y	:F(END)
	S =S Y
	N SPAN(S) . OUTPUT REM . N	:(S)
END

Probieren Sie es online!

Druckt die durch Zeilenumbrüche getrennten Teilzeichenfolgen.

Erläuterung:

line S(for SPLIT) wird eigentlich nicht geteilt, sondern extrahiert das erste Zeichen von Nund speichert es ( .) in Y. Auf Failure springt es zu END. Die Übereinstimmung sollte nur dann fehlschlagen, wenn Ndie Zeichenfolge leer ist. Wenn die Eingabe leer ist, springt sie direkt zu ENDund gibt nichts aus.

S = S Yverkettet Yauf S.

SPAN(S)Stimmt gierig mit einer Reihe von Zeichen in überein Sund sendet sie ( .) an OUTPUT, wobei ( .) Nauf die REMwichtigsten Zeichen von N(falls vorhanden) gesetzt wird. Dann springt es zurück zu S.


1

PowerShell, 73 Byte

{$r=@();$h=@{};[char[]]$ARGS[0]|%{if(!($h[$_]++)){$r+=""};$r[-1]+=$_};$r}

Verwendungszweck

PS> & {$r=@();$h=@{};[char[]]$ARGS[0]|%{if(!($h[$_]++)){$r+=""};$r[-1]+=$_};$r} "mississipi" | ConvertTo-Json -Compress
["m","i","ssissi","pi"]

Sie können einige Bytes sparen - Probieren Sie es online!
mazzy

1

Ruby , 65 62 58 Bytes

->s,*a{s.size.times{|i|(i==s.index(c=s[i])?a:a[-1])<<c}
a}

Probieren Sie es online!

Ein Lambda, das eine Zeichenfolge akzeptiert und ein Array von Zeichenfolgen zurückgibt.

Vorgehensweise: Hängen Sie für jeden Index entweder das Zeichen an diesem Index san das Ergebnisarray oder an die letzte Zeichenfolge im Ergebnisarray an. String#indexGibt den Index der ersten Instanz des Arguments zurück.

-2 Bytes: Initialisierung aals Splat-Argument statt in einer eigenen Zeile. Vielen Dank, Value Ink !

-1 Byte: Verwenden Sie c=s[i]... cstatt s[i]... s[i]. Vielen Dank, Value Ink !

-4 Bytes: Verwenden Sie .timesanstelle von.map



1

Java 8, 193 169 155 151 Bytes

s->{for(int l=s.length(),i=0,j;i<l;i++)if(s.indexOf(s.charAt(i))==i){for(j=i;++j<l&&s.indexOf(s.charAt(j))!=j;);System.out.println(s.substring(i,j));}}

-14 Bytes dank @raznagul (für etwas Offensichtliches habe ich mich irgendwie verpasst ..)
-3 Bytes dank @OOBalance (wieder für etwas Offensichtliches habe ich mich irgendwie verpasst ..: S)

Erläuterung:

Probieren Sie es online aus.

s->{                    // Method with String parameter and no return-type
  for(int l=s.length(), //  The length of the input-String
          i=0,j;        //  Index integers
      i<l;i++)          //  Loop `i` from 0 to `l` (exclusive)
    if(s.indexOf(s.charAt(i))==i){
                        //   If the character at index `i` hasn't occurred yet:
      for(j=i;++j<l     //    Inner loop `j` from `i` to `l` (exclusive),
          &&s.indexOf(s.charAt(j))!=j;);
                        //     as long as the character at index `j` has already occurred
      System.out.println(//    Print:
        s.substring(i,j));}}
                        //     The substring of the input from index `i` to `j` (exclusive)

1
Ich glaube nicht, dass du das brauchst if(l<1). Wenn list, sollte 0die Schleife sowieso nicht wie sie 0<0ist ausgeführt werden false.
Rasnagul

@raznagul Nicht sicher, wie ich das verpasst habe, aber Sie haben vollkommen recht! ..>.>
Kevin Cruijssen

Sie setzen i=0zweimal. Sie können 3 Bytes sparen, indem Sie das zweite for(;i<l;i++)
löschen

@OOBalance Ich bin mir nicht sicher, wie das passiert ist.: S Aber danke, dass du es bemerkt hast! :)
Kevin Cruijssen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.