중복 문자가 없는 가장 긴 부분 문자열의 길이를 리턴하라.
def lengthOfLongestSubstring(self,s):
used={}
max_length , start = 0,0
for index, char in enumerate(s):
# 이미 등장했던 문자라면 'start' 위치 갱신
if char in used and start <= used[char]:
start = used[char] + 1
else:
max_length = max(max_length, index - start + 1)
#현재 문자의 위치 삽입
used[char] = index
return max_length
k번 이상 등장하는 요소를 추출하라.
import heapq
import collections
def topKFrequent( nums,k):
freqs = collections.Counter(nums)
freqs_heap = []
# 힙에 음수로 삽입
for f in freqs:
heapq.heappush(freqs_heap , (-freqs[f],f))
topk = list()
#k번 만큼 추출, 최소 힙이므로 가장 작은 음수 순으로 추출
for _ in range(k):
topk.append(heapq.heappop(freqs_heap)[1])
return topk
def topKFrequent(nums,k):
return list(zip(*collections.Counter(nums).most_common(k)))[0]
fruits = ['lemon' , 'pear' ,'watermelon']
for f in fruits:
print(f, end=' ')
lemon pear watermelon
print(*fruits)
lemon pear watermelon