Skip to content

Commit 3975d76

Browse files
committed
exercise/id3
1 parent 00f23e9 commit 3975d76

File tree

2 files changed

+82
-2
lines changed

2 files changed

+82
-2
lines changed

src/main/kotlin/exercise/medium/id3/Solution3.kt

Lines changed: 73 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,85 @@ package exercise.medium.id3
44
class 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

Comments
 (0)