leetcode Longest Substring Without Repeating Characters 最长不重复子串

来源:互联网 发布:梦幻手游 mac os 编辑:程序博客网 时间:2024/06/05 19:01

Given a string, find the length of the longest substring without repeating characters.

Examples:

  • Given “abcabcbb”, the answer is “abc”, which the length is 3.

  • Given “bbbbb”, the answer is “b”, with the length of 1.

  • Given “pwwkew”, the answer is “wke”, with the length of 3. Note that
    the answer must be a substring, “pwke” is a subsequence and not a
    substring.

题意:给一个字符串,找到连续的不重复子串。

思路:使用数组来保存字符串中每个字符最后一次出现的位置

class Solution {public:    int lengthOfLongestSubstring(string s) {        if (s.empty()) return 0;        int maxl = 0, start = -1;        vector<int> dict(256, -1);        for (int i = 0; i != s.length(); ++i) {            //判断字符是否在start之后出现,出现过表示有重复字符,更新start            if (dict[s[i]] > start)                start = dict[s[i]];            //更新下标            dict[s[i]] = i;            //更新最大值            maxl = max(maxl, i-start);        }        return maxl;    }};
阅读全文
0 0
原创粉丝点击