Pythonで文字列がアイソグラム(Isogram)かどうかを判定する方法
ある文字列 s が与えられたとき、その文字列がアイソグラム(isogram)であるかどうかを判定する方法を解説します。アイソグラムとは、すべての文字がそれぞれちょうど1回だけ出現する文字列のことです。
例えば、入力が s = "education" の場合、出力は True になります。これは「education」に含まれるすべての文字(e、d、u、c、a、t、i、o、n)がそれぞれ1回しか現れないためです。
解決のアプローチ
この問題は、以下の手順で解決できます。
- 空のリスト
char_listを用意する - 文字列内の各文字について次の処理を行う
- その文字がアルファベットの場合:
- すでに
char_listに存在していればFalseを返す - 存在しなければ
char_listの末尾に追加する
- すでに
- その文字がアルファベットの場合:
- すべての文字を確認して重複がなければ
Trueを返す
実装例
それでは、実際のコードを見てみましょう。
def solve(word):
char_list = []
for char in word:
if char.isalpha():
if char in char_list:
return False
char_list.append(char)
return True
s = "education"
print(solve(s))入力
"education"
出力
True
コードのポイント
char.isalpha()を使うことで、数字や記号などのアルファベット以外の文字をスキップし、文字のみを判定対象にしています。- 重複チェックにはリストを使用していますが、
set()やlen(set(word)) == len(word)を使えば、より簡潔に判定することも可能です。
このように、各文字の出現回数を追跡しながら走査するだけで、文字列がアイソグラムかどうかを効率的に判定できます。
-
指定された文字列がキーワードであるかどうかを確認するPythonプログラム
この記事では、指定された文字列がPythonのキーワード(予約語)であるかどうかを判定する方法について解説します。問題の概要与えられた文字列が、Pythonにおけるキーワードであるかどうかを確認する必要があります。キーワードとは、言語によって特別な用途のために予約されている単語であり、変数名や関数名などの識別子として使用することはできません。例えば「if」「for」「while」「def」などはすべてキーワードです。これらの名前を変数に使おうとすると、構文エラーが発生します。解決策:keywordモジュールの活用Pythonには標準ライブラリとしてkeywordモジュールが用意されており、これ
-
文字列が空かどうかをチェックするPythonプログラム
この記事では、与えられた文字列が空であるかどうかを判定するための解決策とアプローチについて解説します。 問題文 文字列が入力として与えられたとき、その文字列が空(空文字列)であるかどうかを判定する必要があります。 Pythonの文字列はイミュータブル(変更不可)な性質を持っているため、文字列に対して何らかの操作を行う際には注意して扱う必要があります。 ここでは、上記の問題を解決するための2つのアプローチを紹介します。 len()メソッドを使用する方法 等価演算子(==)を使用する方法 アプローチ1:len()メソッドを使う方法 len()関数で文字列の長さを取得し、その長さが0であれば空文