File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+
2+ '''
3+ 1. 아이디어 :
4+ 0과 1의 개수가 1 이하로 차이나면 ans에 넣는 식으로 구한다.
5+
6+ 2. 시간복잡도 :
7+ o(n^2)
8+
9+ 3. 자료구조/알고리즘 :
10+ 완전탐색
11+ '''
12+
13+ class Solution (object ):
14+ def countValidPrefixes (self , s ):
15+ """
16+ :type s: str
17+ :rtype: int
18+ """
19+
20+ n = len (s )
21+ ans = 0
22+
23+ for i in range (n ):
24+ selected = s [:i + 1 ]
25+ one = len ([i for i in selected if i == '1' ])
26+ zero = len ([i for i in selected if i == '0' ])
27+ if one == zero or one + 1 == zero or one == zero + 1 :
28+ ans += 1
29+
30+ return ans
31+
Original file line number Diff line number Diff line change 1+ '''
2+ 1. 아이디어 :
3+ prefix에 있는 단어를 완전 탐색으로 찾아서 바꾸는 형태로 진행한다.
4+ for i in lst 이렇게 하면 시간 초과 나는데
5+ for i in dic 이렇게 하면 시간 초과가 안난다.
6+ 왜냐하면 dic은 해시맵이기 때문에 검색 시간이 o(1)이 걸리고, lst는 리스트기 때문에 검색 시간이 o(n)이 걸린다.
7+
8+ 2. 시간복잡도 :
9+ o(n^2)
10+
11+ 3. 자료구조/알고리즘 :
12+ 완전탐색
13+ '''
14+ class Solution (object ):
15+ def replaceWords (self , dictionary , sentence ):
16+ """
17+ :type dictionary: List[str]
18+ :type sentence: str
19+ :rtype: str
20+ """
21+ ans = []
22+ dic = {}
23+ for d in dictionary :
24+ dic [d ] = 0
25+
26+ for sen in sentence .split ():
27+ tmp = ''
28+ for s in sen :
29+ tmp += s
30+ if tmp in dic :
31+ break
32+
33+ ans .append (tmp )
34+
35+ ans2 = ''
36+ for an in ans :
37+ ans2 += an + ' '
38+
39+ return ans2 [:len (ans2 )- 1 ]
40+
You can’t perform that action at this time.
0 commit comments