算法之滑动窗口

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

fun lengthOfLongestSubstring(s: String): Int {

    var n = s.length
    var set = mutableSetOf<Char>()
    var ans = 0
    var i = 0
    var j = 0

    while (i < n && j < n){
        if (!set.contains(s[j])){
            set.add(s[j++])
            ans = max(ans, j - i)
        }else{
            set.remove(s[i++])}
    }
    return ans

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回...
    指尖跳动阅读 10,565评论 0 4
  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 8,632评论 0 19
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 10,792评论 0 9
  • 三、常用开发技术面试题 Android性能优化: 1、布局优化 布局优化的思想就是减少布局文件的层级,这个道理很...
    索尼自行车阅读 3,616评论 0 0
  • 带雨轻风拂杏林,低首黄麦笑红云。 高枝鹊隐声渐去,铁桥斑斑渡知音。
    西山锄药阅读 1,352评论 0 0