题目详情
Given a string, find the length of the longest substring without repeating characters.题目要求输入一个字符串,我们要找出其中不含重复字符的最长子字符串,返回这个最长子字符串的长度。
Examples:
输入"abcabcbb",最长不含重复字符子字符串"abc",返回3.
输入"bbbbb",最长不含重复字符子字符串"b",返回1.
输入"pwwkew",最长不含重复字符子字符串"wke",返回3.
想法
- 这道题的思路也比较简单,首先声明一个max变量存储结果,声明一个temp字符串暂存当前的不重复字符串。
- 对于字符串中的每一个字符c,先判断temp中是否已经存在这个字符,如果不存在,直接将c添加到temp,如果已存在,则新的temp字符串就从不含前一个c字符的地方开始。
- 每次截取字符串之前都判断一下长度是否比max大。
解法
public int lengthOfLongestSubstring(String s) {
int max = 0;
String temp = "";
for(char c : s.toCharArray()){
int index = temp.indexOf(c);
if(index < 0) temp += c;
else{
max = (temp.length() > max) ? temp.length() : max ;
temp = temp.substring(index+1);
temp += c;
}
}
max = (temp.length() > max) ? temp.length() : max;
return max;
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。