[CodeKata] 문자열에서 중복되지 않는 제일 긴 단어의 길이 반환하기

2021. 9. 11. 17:58코딩일지/CodeKata

 

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

 

str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)

 

예를 들어,

 

str = "abcabcabc"
return 은 3
=> 'abc' 가 제일 길기 때문

str = "aaaaa"
return 은 1
=> 'a' 가 제일 길기 때문

str = "sttrg"
return 은 3
=> 'trg' 가 제일 길기 때문

 

Solution

def get_len_of_str(s):

# 아래 코드를 작성해주세요.

  str_list = []
  max_length = 0

  for i in s:
    if i in str_list:
      str_list = str_list[str_list.index(i) + 1:]
	
    str_list.append(i)
    max_length = max(max_length, len(str_list))

  return max_length

 

 str_list라는 빈문자열을 만들어주고 정수형 변수 max_length를 0으로 해서 변수를 지정해줍니다.

 

 이후 주어진 str의 인자의 요소만큼 반복하는데, 요소가 빈 리스트 안에 있는지 확인을 하고, 존재한다면 해당 요소의 다음 인덱스부터 끝까지 인덱싱하고 요소를 리스트문자열에 추가해줍니다.

 

 리스트의 길이와 정수형 변수 max_length를 비교해서 더 큰수를 저장해주고 반환해줍니다.