无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例
给定"abcabcbb",没有重复字符的最长子串是"abc",那么长度就是3。
给定"bbbbb",最长的子串就是"b",长度是1。
给定"pwwkew",最长子串是"wke",长度是3。请注意答案必须是一个子串,"pwke"是子序列而不是子串。
解决方案
class Solution {
public:
int lengthOfLongestSubstring(string s) {
string strMax;
for (int i = 0; i < s.size(); i++) //每个元素开始都是一个字符串
{
string strTemp;
for (int j = i; j < s.size(); j++)
{
bool flag = 0;
for (int k = 0; k < strTemp.size(); k++)
{
if (s.at(j) == strTemp.at(k)) //等于就跳出
{
flag = 1; //说明存在此元素
break;
}
}
if (!flag) //不存在此元素,加入到列表中
strTemp.push_back(s.at(j));
else
break;
}
if (strTemp.size() > strMax.size()) //更新
strMax = strTemp;
}
return strMax.size();
}
};