[Code Kata] 중복없이 제일 긴 단어의 길이 반환하기

박광수·2022년 3월 20일
0

Q.

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

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

str = "abcabcabc"
return3
=> 'abc' 가 제일 길기 때문
str = "abcabcabc"
return3
=> 'abc' 가 제일 길기 때문
str = "aaaaa"
return1
=> 'a' 가 제일 길기 때문
str = "aaaaa"
return1
=> 'a' 가 제일 길기 때문
str = "sttrg"
return3
=> 'trg' 가 제일 길기 때문

A.

def get_len_of_str(s):
  if len(s)==0:
    return 0
  else:
    slist = list(s)
    for i in range (len(s), 0, -1):
      for j in range (0,len(s)-i+1):
        if len(slist[j:i+j])==len(set(slist[j:i+j])):
          return i
  • 길이가 0이면(빈 string) 0을 리턴
  • 예를 들어 str='abcabcabc'이면 for문으로 9글자 배열부터 확인 (set과 list의 문자 개수를 중복 체크)
  • i=9일 때 중복이므로 i=8이 되고 연속된 8개의 배열을 확인(j의역할) ('abcabcab' 와 'bcabcabc')
  • 이렇게 진행되다가 중복이 나오지 않는 순간 i를 리턴
profile
박광수입니다.

0개의 댓글

관련 채용 정보