Skip to content

Commit b8a8823

Browse files
committed
feat(soobing): week8 > palindromic-substrings
1 parent b85d795 commit b8a8823

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* ๋ฌธ์ œ ์„ค๋ช…
3+
* - ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์˜ ๋ชจ๋“  ๋ถ€๋ถ„ ๋ฌธ์ž์—ด ์ค‘ ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜
4+
*
5+
* ์•„์ด๋””์–ด
6+
* 1) 1. Brute Force O(n^3)
7+
* 2) ํˆฌํฌ์ธํ„ฐ O(n^2)
8+
* - ์ง์ˆ˜, ํ™€์ˆ˜ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆ„์–ด ํƒ์ƒ‰
9+
* - ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ํ•ญ๋ชฉ์„ ์ค‘์‹ฌ์œผ๋กœ ์ขŒ์šฐ๋กœ ํ™•์žฅํ•˜๋ฉฐ ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ํ™•์ธ
10+
* 3) DP O(n^2)
11+
* - dp[i][j]๋ฅผ ๋งŒ๋“ค์–ด์„œ s[i..j]๊ฐ€ ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ์ €์žฅ -> ๋‹ค์Œ๋ฒˆ์— ํ•ด๋ณด๊ธฐ
12+
*/
13+
function countSubstrings(s: string): number {
14+
let result = 0;
15+
16+
for (let i = 0; i < s.length; i++) {
17+
let left = i;
18+
let right = i;
19+
20+
while (left >= 0 && right < s.length && s[left] === s[right]) {
21+
result++;
22+
left--;
23+
right++;
24+
}
25+
26+
left = i;
27+
right = i + 1;
28+
while (left >= 0 && right < s.length && s[left] === s[right]) {
29+
result++;
30+
left--;
31+
right++;
32+
}
33+
}
34+
return result;
35+
}

0 commit comments

Comments
ย (0)