public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String str = scanner.next();
int answer = getAnswer(str.toCharArray());
System.out.println(answer);
}
}
public static int getAnswer(char[] str) {
Map lastIndexMap = new HashMap<>(26);
int answer = 0;
int tempAnswer = 0;
for (int i=0; i
// 1、计算值
Integer lastIndex = lastIndexMap.get(str[i]);
if (lastIndex == null) {
// 如果从未出现过
tempAnswer += 1;
} else {
// 以i-1为Right时候,Left值
int tempAnswerLeft = i - tempAnswer;
// 下面判断char[i]是否有在[left, right]中出现过
if (lastIndex
tempAnswer++;
} else {
tempAnswer = i - lastIndex;
}
}
// 2、取最大
answer = Math.max(answer, tempAnswer);
// 3、更新lastIndexMap
lastIndexMap.put(str[i], i);
}
return answer;
}
}