/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int maxLengthSubstring
(String s
){ int length = s.length();
Map
<Character, Integer
> mp
= new HashMap
<>(); int start = 0;
int end = 0;
int ans = 0;
if(length == 0 || length == 1){
return length;
}
while(end < length){
char r = s.charAt(end);
if(mp.containsKey(r) && start <= mp.get(r)){
start = mp.get(r)+1;
}
mp.put(r,end);
ans
= Math.
max(ans, end
- start
+1); end++;
}
return ans;
}
{
System.
out.
println(Ideone.
maxLengthSubstring("abcd")); System.
out.
println(Ideone.
maxLengthSubstring("abcba")); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgaW50IG1heExlbmd0aFN1YnN0cmluZyhTdHJpbmcgcyl7CgkJaW50IGxlbmd0aCA9IHMubGVuZ3RoKCk7CgkJTWFwPENoYXJhY3RlciwgSW50ZWdlcj4gbXAgPSBuZXcgSGFzaE1hcDw+KCk7CgkJaW50IHN0YXJ0ID0gMDsKCQlpbnQgZW5kID0gMDsKCQlpbnQgYW5zID0gMDsKCQlpZihsZW5ndGggPT0gMCB8fCBsZW5ndGggPT0gMSl7CgkJCXJldHVybiBsZW5ndGg7CgkJfQoJCXdoaWxlKGVuZCA8IGxlbmd0aCl7CgkJCWNoYXIgciA9IHMuY2hhckF0KGVuZCk7CgkJCWlmKG1wLmNvbnRhaW5zS2V5KHIpICYmIHN0YXJ0IDw9IG1wLmdldChyKSl7CgkJCQlzdGFydCA9IG1wLmdldChyKSsxOwoJCQl9CgkJCW1wLnB1dChyLGVuZCk7CgkJCWFucyA9IE1hdGgubWF4KGFucywgZW5kIC0gc3RhcnQrMSk7CgkJCWVuZCsrOwoJCX0KCQlyZXR1cm4gYW5zOwoJfQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3lzdGVtLm91dC5wcmludGxuKElkZW9uZS5tYXhMZW5ndGhTdWJzdHJpbmcoImFiY2QiKSk7CgkJU3lzdGVtLm91dC5wcmludGxuKElkZW9uZS5tYXhMZW5ndGhTdWJzdHJpbmcoImFiY2JhIikpOwoJfQp9