leetcode(리트코드)-395 Longest Substring with At Least K Repeating Characters(python)
leetcode(리트코드)-395 Longest Substring with At Least K Repeating Characters(python)
leetcode 175 - Longest Substring with At Least K Repeating Characters 문제입니다.
1. 문제
https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/
2. Input , Output
3. 분류 및 난이도
Medium 난이도 문제입니다.
4. 문제 해석
- 부분 문자열에서 모든 문자들이 k만큼 반복되거나 커야합니다.
- 해당 부분 문자열 중에서 가장 긴 값을 리턴하세요.
5. code
코드설명
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution:
def longestSubstring(self, s: str, k: int) -> int:
if len(s) == 0 or k > len(s) :
return 0
if k ==0 :
return len(s)
#기존 코드 효율성 있게 바꾸기.
'''
dic = {}
for i in range(len(s)):
if s[i] not in dic :
dic[s[i]] = 1
else:
dic[s[i]] += 1
idx = 0
while idx < len(s) and dic[s[idx]] >=k :
idx+=1
'''
idx = 0
while idx < len(s) and s.count(s[idx]) >=k :
idx+=1
if idx == len(s):
return len(s)
left = self.longestSubstring(s[:idx],k)
right = self.longestSubstring(s[idx+1:],k)
return max(left,right)
6. 결과 및 후기, 개선점
필요시 c++로 짜드리겠습니다.
This post is licensed under CC BY 4.0 by the author.