• [Swift]LeetCode340.最多有K个不同字符的最长子串 $ Longest Substring with At Most K Distinct Characters


    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
    ➤微信公众号:山青咏芝(shanqingyongzhi)
    ➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
    ➤GitHub地址:https://github.com/strengthen/LeetCode
    ➤原文地址: https://www.cnblogs.com/strengthen/p/10738322.html 
    ➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
    ➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    Given a string, find the length of the longest substring T that contains at most k distinct characters.

    For example, Given s = "eceba" and k = 2,

    T is "ece" which its length is 3.


    给定一个字符串,找出包含最多k个不同字符的最长子字符串t的长度。

    例如,给定s=“eceba”和k=2,

    T是“ece”,其长度为3。


    Solution:

     1 class Solution {
     2     func lengthOfLongestSubstringKDistinct(_ s:String,_ k:Int) -> Int {
     3         var res:Int = 0
     4         var left:Int = 0
     5         var m:[Character:Int] = [Character:Int]()
     6         var arrChar:[Character] = Array(s)
     7         for i in 0..<s.count
     8         {
     9             m[arrChar[i]] = i
    10             while (m.count > k && left < s.count)
    11             {
    12                 if m[arrChar[left]] != nil && m[arrChar[left]]! == left
    13                 {
    14                     m[arrChar[left]] == nil
    15                 }
    16                 left += 1
    17             }
    18             res = max(res, i - left + 1)            
    19         }
    20         return res        
    21     }
    22 }
    23 
    24 //Character扩展 
    25 extension Character  
    26 {  
    27   //Character转ASCII整数值(定义小写为整数值)
    28    var ascii: Int {
    29        get {
    30            return Int(self.unicodeScalars.first?.value ?? 0)
    31        }       
    32     }
    33 }

    点击:Playground测试

    1 var sol = Solution()
    2 print(sol.lengthOfLongestSubstringKDistinct("eceba",2))
    3 //Print 3
  • 相关阅读:
    排序算法(2)-冒泡排序及优化
    [转]Java泛型详解
    [转]Java泛型详解
    02-机器学习_(knn分类算法与应用)
    01-机器学习_(python数据类型详解)
    流量运营项目说明
    数据仓库星型模型vs雪花模型
    数据仓库命名规范
    数据仓库建模
    数据仓库
  • 原文地址:https://www.cnblogs.com/strengthen/p/10738322.html
Copyright © 2020-2023  润新知