Code Kata | day3 get_len_of_str
Q. String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
예를 들어,
str = "abcabcabc"
return 은 3
=> 'abc' 가 제일 길기 때문`
str = "aaaaa"
return 은 1
=> 'a' 가 제일 길기 때문
☘️ 0차
for
을 사용해서 str의 첫번째 문자부터 마지막 문자까지 호출if
를 사용해서 중복된 문자가 등장하면 그때까지 호출된 문자를 저장- 저장된 문자의 길이를
len
함수를 사용해 얻고,max
함수를 사용해 최대값 반환
☘️ 1차 (fail)
def get_len_of_str(s) :
word = s[0]
result = []
for x in range(1,len(s)) :
if s[x] not in word :
word += s[x]
else:
result.append(word)
word = s[x]
result.append(word)
return max([len(x) for x in result])
☘️ 2차 (pass)
def get_len_of_str(s) :
if s :
word = s[0]
result = []
for x in range(1,len(s)) :
if s[x] not in word :
word += s[x]
else:
result.append(word)
word = s[x]
result.append(word)
return max([len(x) for x in result])
else :
return 0
s가 빈 문자열일 경우 인덱스 에러가 발생
s값이 존재할 때 (True
일 때 ) 다음 과정이 진행될 수 있도록
s값이 없을 때(False
일 때 ) 0
을 반환하도록 수정
☘️ Review
처음엔 딕셔너리를 이용해서 { 단어 : 단어의 길이 } 의 형식으로 저장한 뒤에 단어의 길이의 최대값을 구할까 생각했다. 하지마 딕셔너리의 value
값 간의 비교는 어차피 리스트의 형태로 가공한 뒤 max
함수를 사용하기 때문에 처음부터 리스트 형태로 길이값을 저장하는게 효율적이다.
간단한 for
문의 작성은 list comprehension 을 사용해 간결하게 적는다.
Author And Source
이 문제에 관하여(Code Kata | day3 get_len_of_str), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@e2joo418/Code-Kata-day3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)