Skip to content

Commit c627e15

Browse files
author
แ„‹แ…ตแ„‹แ…งแ†ซแ„‰แ…ฎ
committed
palindromic substrings
1 parent aa83d96 commit c627e15

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package leetcode_study
2+
3+
/*
4+
* ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ์ž๋ฅธ ๊ฐœ๋ณ„ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ผ ๊ฒฝ์šฐ๋ฅผ ํŒ๋‹จํ•˜๋Š” ๋ฌธ์ œ
5+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n^2)
6+
* -> ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ž๋ฅผ ๋•Œ ์ด์ค‘ ๋ฐ˜๋ณต๋ฌธ ์ˆ˜ํ–‰: O(n^2)
7+
* -> subString() ํ•จ์ˆ˜๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ฃผ์–ด์ง„ k ๋งŒํผ ๋ฐฐ์—ด์„ ์ž๋ฅด๊ธฐ ๋•Œ๋ฌธ์— O(k)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง
8+
* --> O(k) + O(n^2) = O(n^2)
9+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(n)
10+
* -> subString() ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ๊ธธ์ด k์˜ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ธฐ ๋•Œ๋ฌธ์— subString ์ตœ๋Œ€ ๊ธธ์ด์ธ O(n)์„ ๊ฐ€์ง.
11+
* */
12+
fun countSubstrings(s: String): Int {
13+
var count = 0
14+
15+
val maxLength = s.length
16+
for (startIndex in 0 until maxLength) {
17+
for (endIndex in startIndex + 1..maxLength) {
18+
val temp = s.substring(startIndex, endIndex)
19+
if (temp == temp.reversed()) {
20+
count++
21+
}
22+
}
23+
}
24+
return count
25+
}
26+
27+
/*
28+
* ์ž๋ฅธ ๋ฌธ์ž์—ด์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ํšŒ๋ฌธ์ธ์ง€ ํŒ๋‹จํ•ด์•ผํ•˜๋Š”๋ฐ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ํฌํ•จํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด์„ํ•˜๊ณ 
29+
* ํ•ด๊ฒฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•จ
30+
* */
31+
fun countSubstrings01(s: String): Int {
32+
val result = mutableListOf<String>()
33+
val maxLength = s.length
34+
var startIndex = 0
35+
while (startIndex < maxLength) {
36+
val endIndex = startIndex + 1
37+
for (i in endIndex until maxLength + 1) {
38+
val temp = s.substring(startIndex, i)
39+
if (s.contains(temp.reversed())) {
40+
result.add(temp)
41+
}
42+
}
43+
startIndex += 1
44+
}
45+
return result.size
46+
}

0 commit comments

Comments
ย (0)