CodeKata 3

이성보·2020년 11월 22일
0

문제

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.

def get_len_of_str(string):
  content = ""
  
  y = []
  
  for i in range(len(string)):
    if string[i] not in content:
      content += string[i]
      
    else:
      y.append(len(content))
      content = string[i]

  y.append(len(content))
  
  return max(y)

최대값 리턴

def get_len_of_str(s):
	dct = {}
	max_so_far = curr_max = start = 0
	for index, i in enumerate(s):
		if i in dct and dct[i] >= start:
			max_so_far = max(max_so_far, curr_max)
			curr_max = index - dct[i]
			start = dct[i] + 1
		else:
			curr_max += 1
		dct[i] = index
	return max(max_so_far, curr_max)

딕셔너리를 활용해서 효율 증가

0개의 댓글