• 力扣题库3.无重复字符的最长子串


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

    Swift

    /*
     * 滑动窗口法
     */
    func lengthOfLongestSubstring(_ s: String) -> Int {
            
            let strlen = s.count
            let chs: [Character] = Array(s)
        
            var map = [Character : Int]()
            var start = 0
            
            var maxLen: Int = 0
            for i in 0..<chs.count {
                let char = chs[i]
                if let preIdx = map[char] {
                    start = max(start, preIdx+1)
                }
                
                map[char] = i;
                maxLen = max(maxLen, i-start+1)
                
                print(start, maxLen)
            }
            
            return maxLen
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    OC

    /*
     * 滑动窗口法
     */
     - (NSInteger)lengthOfLongestSubstring:(NSString *)s {
        if (s.length < 2) {
            return s.length;
        }
        
        NSInteger strLen = s.length;
        NSInteger maxLen = 0;
        NSInteger start = 0;
        NSMutableDictionary *map = [NSMutableDictionary dictionary];
        
        for (NSInteger i=0; i
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    【css/vue】使用css变量,在同一个页面根据不同情况改变字号等样式
    如何避免手动修改文件名,批量重命名文件的方法
    自媒体赚钱必备的5款工具,教你如何快速变现
    linux系统如何定时关机
    [附源码]java毕业设计望湘人电子商城
    域控制器的深度详解!
    智能垃圾桶+蓝牙功能(定时器2)
    一小时上手MindSpore
    微服务(十六)——Seata 分布式事务框架
    线上突然查询变慢怎么核查
  • 原文地址:https://blog.csdn.net/zzl819954692/article/details/134421032