[TIL] Code Kata 3


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に文字を付け、文字が存在する場合はそこで停止し、答えリストにaを付けることを指定します.
次にaを空の文字列に再宣言し、aに文字が存在するかどうかを再確認し、存在しない場合はaに文字を追加します.最後に必ずaを答えのリストに入れます.
そして答えリストの中で一番長い文字列の長さを返すと終わります.