3.无重复字符的最长子串
执行时间击败了98%的用户,内存消耗击败了74%的用户。这题有个小坑的地方,输入的字符不一定是从 a 开始到 z ,可能有其他字符。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int s_length = s.length(); //获取输入字符串长度
int memery[100];
memset(memery, -1, sizeof(int) * 100);
int start = 0, now = 0, maxlen = 0;
if (s_length == 0){
return 0;
}
while(now < s_length){
//if(s[now] - ' ' > 100 || s[now] - ' ' < 0){
// return s[now] - ' ';
//}
if (memery[s[now] - ' '] != -1){
//return memery[s[now] - '0'];
if (now - start > maxlen){
maxlen = now - start;
}
while(start <= memery[s[now] - ' ']){
memery[s[start]-' '] = -1;
start ++;
}
}
memery[s[now] - ' '] = now;
now++;
}
if (now - start > maxlen){
maxlen = now - start;
}
return maxlen;
}
};