String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.
str: 텍스트
return: 중복되지 않은 알파벳 길이 (숫자 반환)
def get_len_of_str(s):
if not s:
return 0
list_1 = []
list_2 = []
for i in s:
if i not in l1:
list_1.append(i)
else:
a = len(list_1)
list_2.append(a)
list_1 = []
list_1.append(i). #주의점1
list_2.append(len(list_1)) #주의점2
list_2.sort()
return l2[-1]
빈리스트 list_1과 list_2의 활용은 list_1은 중복 직전까지 s의 요소를 담는 용도, list_2는 list_1의 길이를 담는용도로 사용
중복이 발생하면 list_1의 길이를 len함수로 측정해서 그 값을 list_2에 넣고 list_1 초기화 진행
계속 반복 해서 list_2의 값을 sort 함수를 이용해 오름차순으로 정렬하고 인덱스 -1을 사용해서 그 값을 뽑아 return한다
주의점 1 : 주의점1의경우 중복된시점에 인자를 추가해주지않으면 중복된값이 리스트에 추가되지않아 빈리스트를 만들고 for문을 돌기전에 추가해줘야한다.
주의점2 : for문을 돌때 마지막인자는 반드시 중복되는것이 없으므로 if문에서 True쪽 구문을 통과한다 하지만 True문에는 길이를 측정해서 list_2에 담는 구문이 없으므로 if문이 끝나면 list_1에 마지막인자가 추가된 list_1의 길이를 측정하여 list_2에 넣어준 뒤에 전체 정렬을 해야 올바른 값이 나온다.