您的位置:首页 > 其它

找到字符串的最长无重复字符子串

2016-10-19 20:57 288 查看
【题目】
给定一个字符串str,返回str的最长无重复字符子串的长度。
【举例】
str="abcd",返回4
str="aabcb",最长无重复字符子串为"abc",返回3。
【要求】
如果str的长度为N,请实现时间复杂度为O(N)的方法。

class Solution {
public:
/**
* @param s
* @return
*/
int lengthOfLongestSubstring(string s) {
// write your code here
int ret = 0;
map<char, int> m;
int start = 1;
for (int i = 1; i <= s.length(); i++)
{
char c = s[i - 1];
if (m[c] >= start)
{
start = m[c] + 1;
m[c] = i;

}
else
{
m[c] = i;
ret = max(ret, i - start + 1);
}

}
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: