File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def countSubstrings (self , s : str ) -> int :
3
+ """
4
+ Intuition:
5
+ 2중 루프를 돌면서 각 substring에 대해
6
+ palindrome인지 아닌지 확인한다.
7
+ 한번 palindrome인지 확인했으면, set에 추가하여
8
+ 중복 확인을 한다.
9
+
10
+ Time Complexity:
11
+ O(N^2 x s.length):
12
+ 2중 루프는 N^2만큼 소요되고,
13
+ 각 루프에 palindrome을 체크하는 것은
14
+ s.length만큼 소요된다.
15
+
16
+ Space Complexity:
17
+ O(N^2):
18
+ palindrome이 모두 중복되지 않을 경우 set에
19
+ s의 substring 개수만큼 저장한다.
20
+ 이는 대략 N^2이다.
21
+ """
22
+ def is_palindrome (s ):
23
+ return s == s [::- 1 ]
24
+
25
+ palindrome_set = set ()
26
+ answer = 0
27
+ for i in range (1 , len (s ) + 1 ):
28
+ for j in range (0 , len (s ) - i + 1 ):
29
+ substr = s [j : j + i ]
30
+ if substr in palindrome_set or is_palindrome (substr ):
31
+ palindrome_set .add (substr )
32
+ answer += 1
33
+ return answer
You can’t perform that action at this time.
0 commit comments