Pythonで2つの文字列が近いかどうかを判断するプログラム
sとtの2つの文字列があるとすると、sとtが近いかどうかを確認する必要があります。次の操作を使用して一方を他方から達成できれば、2つの文字列は近いと言えます-
-
既存の2文字を交換します。 (abcdeからaecdbのように)
-
ある既存の文字が出現するたびに別の既存の文字に変更し、他の文字についても同じようにします。 (aacabb-> bbcbaaのように(ここではすべてのaがbに変換され、その逆も同様です))
どちらの文字列でも、何度でも操作を使用できます。
したがって、入力がs ="zxyyyx"、t ="xyyzzz"の場合、3回の操作でsからtを取得できるため、出力はtrueになります。 ("zxyyyx"-> "zxxyyy")、( "zxxyyy"-> "yxxzzz")、および( "yxxzzz"-> "xyyzzz")。
これを解決するには、次の手順に従います-
-
sとtに一般的でない文字がある場合は、
-
Falseを返す
-
-
a:=s内の文字のすべての頻度値のリスト
-
b:=t内の文字のすべての頻度値のリスト
-
リストを並べ替える
-
リストを並べ替えるb
-
aがbと同じでない場合は、
-
Falseを返す
-
-
Trueを返す
例
理解を深めるために、次の実装を見てみましょう-
from collections import Counter def solve(s, t): if set(s) != set(t): return False a = list(Counter(s).values()) b = list(Counter(t).values()) a.sort() b.sort() if a != b: return False return True s = "zxyyyx" t = "xyyzzz" print(solve(s, t))
入力
"zxyyyx", "xyyzzz"
出力
True
-
2つの文字列から珍しい単語を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B): # count count = {} # insert in A for word in A.split(): count[word] = coun
-
2つの辞書をマージするPythonプログラム
このチュートリアルでは、 Pythonで2つの辞書を組み合わせる方法を学習します。 。 2つの辞書をマージするいくつかの方法を見てみましょう。 update()メソッド まず、辞書の組み込みメソッド update()を確認します。 マージします。 update() メソッドはなしを返します オブジェクトであり、2つの辞書を1つに結合します。プログラムを見てみましょう。 例 ## initializing the dictionaries fruits = {"apple": 2, "orange" : 3, "tangerine"