[BOJ]1316組単語Checker(Python)


マイコード

import sys
N=int(sys.stdin.readline())
cnt=0
for i in range(N):
    alli=list(map(str,sys.stdin.readline().strip()))
    j=0
    alzero=[0 for j in range(26)]
    while(j<len(alli)):
        alzero[ord(alli[j])-97]+=1
        if alzero[ord(alli[j])-97]>1:
            j=len(alli)
            cnt-=1
            break
        if j!=(len(alli)-1):
            if alli[j]==alli[j+1]:
                while alli[j]==alli[j+1]:
                    j+=1
                    if j>=len(alli)-2:
                        break
        j+=1
    cnt+=1
print(cnt)

リファレンスコード

import sys
N=int(sys.stdin.readline())
cnt=N
for i in range(N):
    alli=list(map(str,sys.stdin.readline().strip()))
    for j in range(len(alli)-1):
        if alli[j]==alli[j+1]:
            pass
        elif alli[j] in alli[j+1:]:
            cnt-=1
            break
print(cnt)

問題を解く考え


ブログに書かれている多くの文章と違って、今回の問題は的確な文章ではありません.間違いが見つからず、解決した問題を探し出す.検索の結果、複数行のコードをxiny文に変えることができることがわかりました.
少し前にPythonを勉強している間に文法を勉強しましたが、問題を解くときに思い出せなかったので使えず、Pythonのない長いコードを編んでしまいました.どんなに良い道具があっても、うまく使えなければ何の役にも立たない.Pythonの役に立つ文法を正しく使うために、私は多くの問題をしてそれを熟知しなければなりません.