模板
public int lengthOfLongestSubString(String str){
if(str.length() == 0){
return 0;
}else{
Map<Character, Integer> map = new HashMap<Character, Integer>();
int max = 0;
int left = 0;
for(int i = 0; i < str.length(); i++){
if(map.containsKey(str.charAt(i))){
left = Math.max(left, map.get(str.charAt(i)));
}else{
map.put(str.charAt(i), i);
max = Math.max(max, i - left + 1);
}
}
return max;
}
}
例题
Problem Description
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
Java代码
public class Solution{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.nextLine();
int len = lengthOfLongestSubString(str);
System.out.println("不重复最大字串长度:"+len);
}
}