• [Swift]LeetCode1100. 长度为 K 的无重复字符子串 | Find K-Length Substrings With No Repeated Characters


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

    Given a string S, return the number of substrings of length K with no repeated characters.

    Example 1:

    Input: S = "havefunonleetcode", K = 5
    Output: 6
    Explanation: 
    There are 6 substrings they are : 'havef','avefu','vefun','efuno','etcod','tcode'.
    

    Example 2:

    Input: S = "home", K = 5
    Output: 0
    Explanation: 
    Notice K can be larger than the length of S. In this case is not possible to find any substring.

    Note:

    1. 1 <= S.length <= 10^4
    2. All characters of S are lowercase English letters.
    3. 1 <= K <= 10^4

    给你一个字符串 S,找出所有长度为 K 且不含重复字符的子串,请你返回全部满足要求的子串的 数目。 

    示例 1:

    输入:S = "havefunonleetcode", K = 5
    输出:6
    解释:
    这里有 6 个满足题意的子串,分别是:'havef','avefu','vefun','efuno','etcod','tcode'。
    

    示例 2:

    输入:S = "home", K = 5
    输出:0
    解释:
    注意:K 可能会大于 S 的长度。在这种情况下,就无法找到任何长度为 K 的子串。 

    提示:

    1. 1 <= S.length <= 10^4
    2. S 中的所有字符均为小写英文字母
    3. 1 <= K <= 10^4

    44ms

     1 class Solution {
     2     func numKLenSubstrNoRepeats(_ S: String, _ K: Int) -> Int {
     3         var ans:Int = 0
     4         let n:Int = S.count
     5         let S:[Int] = Array(S).map{$0.ascii}
     6         for i in 0..<n
     7         {
     8             var freq:[Int] = [Int](repeating:0,count:26)
     9             var j:Int = i
    10             var len:Int = 0
    11             while(j < n)
    12             {
    13                 //a:97
    14                 if freq[S[j] - 97] != 0 {break}
    15                 freq[S[j] - 97] += 1
    16                 len += 1
    17                 j += 1
    18                 if len == K
    19                 {
    20                     ans += 1
    21                 }
    22             }
    23         }
    24         return ans
    25     }
    26 }
    27 
    28 //Character扩展
    29 extension Character
    30 {
    31     //Character转ASCII整数值(定义小写为整数值)
    32     var ascii: Int {
    33         get {
    34             return Int(self.unicodeScalars.first?.value ?? 0)
    35         }
    36     }
    37 }
  • 相关阅读:
    关于Design Complier/Library Compiler的跌坑(坑爹)记录
    博客暂时停更
    简单的Verilog测试模板结构
    存储器的设计/建模
    静态时序分析的三种分析模式(简述)
    Linux系统的基本使用
    Modelsim的使用——复杂的仿真
    Python-第三方库requests
    MySQL查询结果写入到文件总结
    MySQL创建函数报“ERROR 1418 ”错误,不能创建函数
  • 原文地址:https://www.cnblogs.com/strengthen/p/11075293.html
Copyright © 2020-2023  润新知