#题目描述:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
第一思路:以每一个元素作为待求最长子串的开头,进行遍历,时间复杂度N^3...........超出时间限制
class Solution {
public:
int getLengthOfSubString(int idx, string s){
// 哈希集合,记录每个字符是否出现过,常用函数:
// unordered_set::insert
// unordered_set::find
// unordered_set::erase
unordered_set<char> set;
int len = 1;
set.insert(s[idx]);
for(int i=idx+1; i<s.size(); i++){
if(set.find(s[i]) == set.end()){
set.insert(s[i]);
len++;
}else{
break;
}
}
return len;
}
int lengthOfLongestSubstring(string s) {
if (s.size()==0) return 0;
int le