def get_len_of_str(s):
word = []
answer = []
a = ''
for i in range(len(s)):
if i == 0:
word.append(s[i])
a += s[i]
elif s[i] != word[-1]:
word.append(s[i])
a += s[i]
elif s[i] == word[-1]:
answer.append(a)
word.append(s[i])
a = ''
a += s[i]
answer.append(a)
b = len(answer[0])
for i in range(1,len(answer)):
if len(answer[i]) > b:
b = len(answer[i])
return b
이 코드는 내가 잘못푼 코드이다
나는 같은 문자가 연속해서 나오는것만 안되는줄 알았다.
하지만 한 문자열안에 같은 문자가 있으면 안되는 문제였다.
그렇게 되면 내가 처음에 생각했던 코드보다 비교적 쉽게 문제를 해결할 수 있다.
def get_len_of_str(s):
answer = []
a = ''
for i in s:
if i not in a:
a += i
else:
answer.append(a)
a = ''
a += i
answer.append(a)
b = len(answer[0])
for i in range(len(answer)):
if len(answer[i]) > b:
b = len(answer[i])
return b
이것은 정답으로 인정된 내가 푼 코드이다.
a = '' 할당하고 포문으로 문자열을 돌려서 a 에 문자가 없으면 a 에 문자를 더해주고 문자가 안에 존재하면 거기서 멈춘후 answer 리스트에 a를 넣어준다.
그리고 a를 빈 문자열로 다시 선언하고 다시 a 에 해당 문자가 있는지 확인 후 없으면 a에 문자를 더해준다. 그리고 마지막엔 무조건 a를 answer 리스트에 넣어준다.
그렇게 한 후 answer 리스트에서 길이가 제일 긴 문자열의 길이를 반환하면 끝이다.