String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
- 입력: 문자열
- 출력: 중복되지 않은 알파벳 길이 (숫자 반환)
def get_len_of_str(s):
compare =""
results = []
s_len = len(s)
if len(s) == 0: # 빈 문자열인 경우 0 반환
return 0
for i in range(s_len):
if s[i] in compare: # 중복된다면 results에 추가
results.append(compare)
compare = s[i] #다음 반복에 비교하기 위해 현재 원소로 compare 초기화
else:
compare += s[i] # 중복되지 않는다면 해당 원소를 추가
if i == s_len-1: # 중복되지 않고 마지막 원소라면 results에 추가
results.append(compare)
i += 1
return len(max(results, key=len)) # 길이가 가장 긴 문자열의 길이 반환
print(get_len_of_str('sttrg')) # 결과: 3
test case 중 빈 문자열의 입력이 있어, 빈 문자열인 경우 중복 검사 없이 바로 0을 반환하도록 하였다.
그렇지 않으면 max() 함수에서 empty sequence 라고 에러가 난다.