BOJ実施:グループ単語checker(1316)


問題の定義
コンビネーションワードとは、単語に存在するすべての文字に対して、各文字が連続して現れる場合にのみ使用されます.例えば、ccazzzbbは、c、a、z、bが連続して現れるため、kinもk、i、nが連続して現れるが、aabbbbcbはbが落ちたため、組合せ語ではない.
プログラムを作成し、N個の単語を入力し、グループ内の単語数を出力してください.
入力条件
1行目の単語の個数はNです.Nは100以下の自然数である.2行目から、単語はN行に入ります.単語はアルファベット小文字だけで、繰り返しず、最長100です.
しゅつりょくじょうけん
最初の行はグループ語の個数を出力します.
I/O例
# 입력
3
happy
new
year
# 출력
3
# 입력
5
ab
aa
aca
ba
bb
# 출력
4
私が作ったコード1
n = int(input())
words = []
for i in range(n):
    words.append(str(input()))
cnt = 0
for string in words:
    lst = []
    remove = []
    for char in string:
        if char not in lst:
            lst.append(char)
        elif char in lst and char != lst[-1]:
            remove.append(char)
        else:
            continue
    if len(set(remove)) == 0:
        cnt += 1
print(cnt)
私が作ったコード2
def check_group(word):
    last = ''
    charset = []
    for char in word:
        if char not in charset:
            charset.append(char)
        else:
            if char != last:
                return 0
        last = char
    return 1

n= int(input())
cnt = 0

for i in range(n):
    word = input()
    cnt += check_group(word)
print(cnt)