leetcode 3. 无重复字符的最长子串
题意
给定一个字符串,找出不含有重复字符的最长子串的长度。
解题思路
先建立一个临时String
为temp
,然后遍历字符串,把字符串中的字母加到temp
中,作为temp
的第一个字母。从当前字母的下一个字母开始遍历字符串,判断每一个字母是否已经存在于temp
中,如果不存在,则添加到temp
中,继续遍历下一个字母,如果存在则终止该循环,并统计temp
的长度。直至所有字母被遍历。
代码
class Solution {
public int lengthOfLongestSubstring(String s) {
int max = 0;
String temp;
char ch;
int repeatIndex = 0;
for (int i = 0; i < s.length(); i++)
{
temp = "" + s.charAt(i);
for (int j = i + 1; j < s.length(); j++)
{
ch = s.charAt(j);
repeatIndex = temp.indexOf(ch);
if (-1 == repeatIndex)
{
temp += ch;
}
else
{
i += repeatIndex;
break;
}
}
if (temp.length() > max)
{
max = temp.length();
}
}
return max;
}
}