zoukankan      html  css  js  c++  java
  • LeetCode_3.无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:

    输入: s = "abcabcbb"
    输出: 3 
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    

    示例 2:

    输入: s = "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    

    示例 3:

    输入: s = "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
         请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
    

    示例 4:

    输入: s = ""
    输出: 0
    

    提示:

    • 0 <= s.length <= 5 * 104
    • s 由英文字母、数字、符号和空格组成

    C#代码

    public class Solution {
        public int LengthOfLongestSubstring(string s) {
            int max = 0;
            int index = -1;
            int temp = -1;
            Dictionary<char,int> dic = new Dictionary<char,int>();
            for(int i = 0; i < s.Length; i++){
                if(dic.ContainsKey(s[i])){
                    if(s[i] == s[i - 1]) dic.Clear();
                    else{
                        temp =dic[s[i]];
                        for(int j = temp; j > index; j--){
                            dic.Remove(s[j]);
                        }
                        index = temp;
                    }
                }
    
                dic.Add(s[i],i);
                if(dic.Count > max) max = dic.Count;
            }
            return max;
        }
    }
    
  • 相关阅读:
    嵊州D1T2 圣女
    嵊州D1T1 总统先生,一路走好!
    第三节暑期信息奥赛课——图论
    并查集小结
    洛谷P1003 铺地毯 noip2011提高组day1T1
    洛谷p1216 IOI1994 Day1T1
    Title
    Title
    Title
    Title
  • 原文地址:https://www.cnblogs.com/fuxuyang/p/14244615.html
Copyright © 2011-2022 走看看