找到字符串的最长无重复字符子串
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;
}
};
给定一个字符串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;
}
};
相关文章推荐
- 找到字符串的最长无重复字符子串
- (字符串哈希表)找到字符串中不重复出现字符的最长子串长度
- 找到字符串的最长无重复字符子串
- 字符串问题---找到字符串的最长无重复字符子串
- 给定一个字符串,找到最长的子串的长度没有重复字符
- 求字符串中不含重复字符的最长子串的长度
- 求字符串中最长无重复字符的子串
- 求字符串中最长无重复字符的子串
- 求字符串中不含重复字符的最长子串的长度
- 求字符串的最长无重复字符子串(C++)
- 求一字符串最长不重复字符子串的长度【Java 版】
- 字符串中最长无重复字符的子串
- 求字符串内不包含重复字符的最长子串
- 求字符串的不重复字符的最长子串长度的问题
- 求字符串中最长无重复字符的子串
- 在字符串中找到全部是由指定的字符组成的最长子串
- 【LeetCode题目记录-3】字符串中最长的没有重复字符的子串
- 查找字符串中最长无重复字符的子串
- 定义一个栈的数据结构,实现min函数,要求push,pop,min时间复杂度是0(1);找出字符串中的最长子串,要求子串不含重复字符,时间复杂度是O(n);
- 求字符串中最长无重复字符的子串