题目来源https://leetcode.com/problems/longest-substring-without-repeating-characters/description/
给定一个字符串,找出最长非重复字符串
解题思路,比较耿直一点的写法,循环每一个字节,并用一个变量接受,直到遇到重复的字节,与上一次的进行长度对比,记录下较大的一个长度。
fun lengthOfLongestSubstring(s: String): Int {
val sb = StringBuilder()
var count = 0
s.forEach {
if(sb.contains(it)){
if(sb.length > count){
//记录最大长度
count = sb.length
}
//遇到重复,删除重复部分
sb.delete(0, sb.indexOf(it)+1)
}
sb.append(it)//记录字节
}
//最后再进行一次对比
if(sb.length > count){
count = sb.length
}
return count
}
最后看看测试结果.