LeetCode: Longest Substring Without Repeating Characters

来源:互联网 发布:淘宝客软文范例 编辑:程序博客网 时间:2024/06/15 20:53

记录每个字符上次出现的位置,pri表示所有字符从pri+1开始都不重复


class Solution {

public:
    int lengthOfLongestSubstring(string s) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if(s=="")
            return 0;
        int pri,mNum,pi[26];
        pri = -1, mNum = -1;
        memset(pi,-1,sizeof(pi));
        for(int i=0;i<s.length();i++){
            if(pi[s[i]-'a']!=-1)
                pri = max(pri,pi[s[i]-'a']);
            pi[s[i]-'a'] = i;
            if(mNum<i-pri)
                mNum = i-pri;
        }
        return mNum;
    }
};
原创粉丝点击