zoukankan      html  css  js  c++  java
  • [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
  • 相关阅读:
    Test-Driven Development
    单元测试之道(使用NUnit)
    IoC--structuremap
    web.config的configSections节点
    【转】理解POCO
    js的call(obj,arg)学习笔记
    css隐藏滚动条方法
    regexp学习
    asp后台拼接百度ueditor编辑器过程
    php关键词construct和static
  • 原文地址:https://www.cnblogs.com/strengthen/p/10738322.html
Copyright © 2011-2022 走看看