@@ -4,14 +4,85 @@ package exercise.medium.id3
44class Solution3 {
55 fun lengthOfLongestSubstring (s : String ): Int {
66
7- var longest: String
7+ if (s.length == 0 ) return 0
8+ if (s.length == 1 ) return 1
89
9- return 0
10+ var longest: String = " "
11+ var maxLength: Int = 0
12+ var start = 0
13+
14+
15+ for (l in start.. < s.length) {
16+
17+ longest = " "
18+ if (s.length - 1 - l < maxLength) break
19+
20+ for (i in l.. < s.length) {
21+ if (s[i] !in longest) {
22+ longest + = s[i]
23+ if (longest.length > maxLength) maxLength = longest.length
24+ } else {
25+ if (longest.length > maxLength) maxLength = longest.length
26+ println (" s: ${s} , longest: ${longest} " )
27+ longest = " " + s[i]
28+ }
29+ }
30+ start + = longest.length - 1
31+ }
32+ return maxLength
1033 }
1134
1235/*
1336
37+ // Output Limit Exceeded
38+ fun lengthOfLongestSubstring(s: String): Int {
39+
40+ if (s.length == 0) return 0
41+ if (s.length == 1) return 1
1442
43+ var longest: String = ""
44+ var maxLength: Int = 0
45+
46+ for (l in 0..<s.length) {
47+ longest = ""
48+ for (i in l..<s.length) {
49+ if (s[i] !in longest) {
50+ longest += s[i]
51+ if (longest.length > maxLength) maxLength = longest.length
52+ } else {
53+ if (longest.length > maxLength) maxLength = longest.length
54+ println("s: ${s}, longest: ${longest}")
55+ longest = "" + s[i]
56+ }
57+ }
58+ }
59+ return maxLength
60+ }
61+
62+ fun lengthOfLongestSubstring(s: String): Int {
63+
64+ if (s.length == 0) return 0
65+ if (s.length == 1) return 1
66+
67+ var longest: String = ""
68+ var maxLength: Int = 0
69+
70+ // прохождение по символу всей строки
71+ // символ + 1 != (входит в подстроку) увеличить макс длину вложенной строки
72+ // если встретился повторный символ, сброс подстроки
73+
74+ for (index in 0..<s.length) {
75+ if (s[index] !in longest) {
76+ longest += s[index]
77+ if (longest.length > maxLength) maxLength = longest.length
78+ } else {
79+ if (longest.length > maxLength) maxLength = longest.length
80+ println("s: ${s}, longest: ${longest}")
81+ longest = "" + s[index]
82+ }
83+ }
84+ return maxLength
85+ }
1586
1687*/
1788}
0 commit comments