TIL - CodeKata(3)
#質問
#解答
import time
def get_len_of_str(s):
start_time = time.time()
x = list(s)
y = []
z = []
if s == '': # 예외처리
return 0
for i in range(len(x)):
if x[i] not in y:
y.append(x[i])
if i == len(x)-1:
z.append(''.join(y))
else:
z.append(''.join(y))
y.clear() # 리스트 객체 y를 초기화하고 싶으면 y =[]를 사용해도 된다.
y.append(x[i])
w = max(len(q) for q in z) # s = ''일 때 이 부분에서 error가 발생
# list comprehension
end_time = time.time()
print(end_time-start_time)
return w
review
s=''
)が与えられた場合、w = max(len(q) for q in z)
の部分でエラーが発生します.これは、max()
のパラメータとして使用できるのはiterableオブジェクトのみです.数値0(len("")=0)はiterableではないためmax()は実行できません.これはエラーの原因です.s = ''
ではなくy.clear()
を使用します.別の解釈
def get_len_of_str(str):
answer = ['']
i = 0
for s in str:
if s not in answer[i]:
answer[i] += s # 초깃값 활용하여 특정 인덱스 값을 변화시킴
else:
i += 1
answer.append(s)
return max(len(el) for el in answer)
Reference
この問題について(TIL - CodeKata(3)), 我々は、より多くの情報をここで見つけました https://velog.io/@fcfargo/TIL-CodeKata-eo2h7c53テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol