面试题:找出最长不重复的子串

题目:给定一个字符串,例如:abbcdef,最长不重复的子串为bcdef。

kotlin代码实现:

 1 fun main() {
 2     val str = "abbcde"
 3     var longest = ""
 4     
 5     var i = 0
 6     while (i < str.length) {
 7         val sb = StringBuffer()
 8         for (j in i until str.length) {
 9             val s = str.substring(j, j + 1)
10             if (sb.indexOf(s) > 0) {
11                 i = j - 1
12                 break
13             } else {
14                 sb.append(s)
15             }
16         }
17         if (sb.length > longest.length) {
18             longest = sb.toString()
19         }
20         i++
21     }
22     
23     println("longest substring:" + longest)
24     
25 }

 

posted @ 2022-03-15 18:37  -小城-  阅读(21)  评论(0)    收藏  举报