単語でいっぱいのテキスト ファイルがあります。テキスト ファイルを調べて、アルファベット順に綴られた単語の数を数えます。単語がアルファベット順であるかどうかを判断する方法を考えるのに苦労しています。
私はすでに周りを見回しており、並べ替えで実行できることを確認しました。ただし、クラスでまだソートについて学んでいないため、使用できません。ヘルプ/ヒントは大歓迎です。
アルファベットの各文字に数字を割り当てるようなことをする必要がありますか?
単語でいっぱいのテキスト ファイルがあります。テキスト ファイルを調べて、アルファベット順に綴られた単語の数を数えます。単語がアルファベット順であるかどうかを判断する方法を考えるのに苦労しています。
私はすでに周りを見回しており、並べ替えで実行できることを確認しました。ただし、クラスでまだソートについて学んでいないため、使用できません。ヘルプ/ヒントは大歓迎です。
アルファベットの各文字に数字を割り当てるようなことをする必要がありますか?
隣接する文字の各ペアがアルファベット順である場合 (およびその場合のみ)、単語はアルファベット順です。
信じられないかもしれませんが、すべての文字には既に暗黙的に番号が割り当てられています。ASCII 文字コードです。関数を使用してアクセスするord()
か、直接比較できます。
>>> "a" > "b"
False
>>> "b" > "a"
True
ただし、大文字は 65 ~ 90 にコード化され、小文字は 97 ~ 122 にコード化されることに注意してください。
>>> "C" > "b"
False
すべて大文字またはすべて小文字を比較していることを確認する必要があります。
上記の情報を使用して、特定の文字列がアルファベット順であるかどうかを確認する関数の 1 つを次に示します。
def isAlphabetical(word):
for i in xrange(len(word) - 1):
if word[i] > word[i+1]:
return False
return True