/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.*;
class Ideone {
public static void main
(String[] args
) { Ideone m = new Ideone();
// Test cases
System.
out.
println("Input: " + input1
); System.
out.
println("Phrases: " + m.
getPhrases(input1
));
System.
out.
println("Input: " + input2
); System.
out.
println("Phrases: " + m.
getPhrases(input2
)); }
public List
<String
> getPhrases
(String s
) { List<String> res = new ArrayList<>();
Set<String> set = new HashSet<>();
for (int i = 0; i < s.length(); i++) {
String curr
= "" + s.
charAt(i
); if (set.contains(curr)) {
int j = i;
curr = "" + s.charAt(i);
while (j + 1 < s.length() && set.contains(curr)) {
j++;
curr = s.substring(i, j + 1);
}
i = j;
}
set.add(curr);
res.add(curr);
}
return res;
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuKjsKCmNsYXNzIElkZW9uZSB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgSWRlb25lIG0gPSBuZXcgSWRlb25lKCk7CiAgICAgICAgCiAgICAgICAgLy8gVGVzdCBjYXNlcwogICAgICAgIFN0cmluZyBpbnB1dDEgPSAiZ29vb29vb2dsZSI7CiAgICAgICAgU3RyaW5nIGlucHV0MiA9ICJhYmNjY2NkIjsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbnB1dDogIiArIGlucHV0MSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQaHJhc2VzOiAiICsgbS5nZXRQaHJhc2VzKGlucHV0MSkpOwoKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIklucHV0OiAiICsgaW5wdXQyKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlBocmFzZXM6ICIgKyBtLmdldFBocmFzZXMoaW5wdXQyKSk7CiAgICB9CgogICAgcHVibGljIExpc3Q8U3RyaW5nPiBnZXRQaHJhc2VzKFN0cmluZyBzKSB7CiAgICAgICAgTGlzdDxTdHJpbmc+IHJlcyA9IG5ldyBBcnJheUxpc3Q8PigpOwogICAgICAgIFNldDxTdHJpbmc+IHNldCA9IG5ldyBIYXNoU2V0PD4oKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKICAgICAgICAgICAgU3RyaW5nIGN1cnIgPSAiIiArIHMuY2hhckF0KGkpOwogICAgICAgICAgICBpZiAoc2V0LmNvbnRhaW5zKGN1cnIpKSB7CiAgICAgICAgICAgICAgICBpbnQgaiA9IGk7CiAgICAgICAgICAgICAgICBjdXJyID0gIiIgKyBzLmNoYXJBdChpKTsKICAgICAgICAgICAgICAgIHdoaWxlIChqICsgMSA8IHMubGVuZ3RoKCkgJiYgc2V0LmNvbnRhaW5zKGN1cnIpKSB7CiAgICAgICAgICAgICAgICAgICAgaisrOwogICAgICAgICAgICAgICAgICAgIGN1cnIgPSBzLnN1YnN0cmluZyhpLCBqICsgMSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpID0gajsKICAgICAgICAgICAgfQogICAgICAgICAgICBzZXQuYWRkKGN1cnIpOwogICAgICAgICAgICByZXMuYWRkKGN1cnIpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlczsKICAgIH0KfQo=
Input: goooooogle
Phrases: [g, o, oo, ooo, gl, e]
Input: abccccd
Phrases: [a, b, c, cc, cd]