leetcode 3. 无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
代码:
class Solution { public: int lengthOfLongestSubstring(string s) { int start = 0; int maxCnt = 0; for(int i = 0;i) { for(int j = start;j) { if(s[i] == s[j]) { start = j+1; break; } } maxCnt = max(maxCnt,i-start+1); } return maxCnt; } };
unordered_map实现:
class Solution { public: int lengthOfLongestSubstring(string s) { int start = 0; int maxCnt = 0; unordered_map<char,int>cnt; for(int i = 0;i) { cnt[s[i]]++; while(start1){ cnt[s[start++]]--; } maxCnt = max(maxCnt,i-start+1); } return maxCnt; } };