Pythonで2つの文が類似しているかどうかを確認するプログラム
2つの文sとtがあるとします。それらが類似しているかどうかを確認する必要があります。ここの文は英語の文字だけです。 2つの文が等しくなるように、これらの与えられた文の1つに任意の文(おそらく空)を追加できる場合、2つの文は類似していると言われます。
したがって、入力がs ="we live at city Kolkata" t ="city Kolkata"の場合、「we live in」という文を追加することで、tからsを取得できるため、出力はTrueになります。
これを解決するには、次の手順に従います-
-
s1:=s内の単語のリスト
-
s2:=t内の単語のリスト
-
s1のサイズ>s2のサイズの場合
-
s1とs2を交換する
-
-
s1が空でない間、実行します
-
s2[0]がs1[0]と同じ場合、
-
s2から最初の単語を削除する
-
s1から最初の単語を削除する
-
-
それ以外の場合、s2の最後の単語がs1の最後の単語と同じである場合、
-
s2から最後の単語を削除する
-
s1から最後の単語を削除する
-
-
それ以外の場合
-
falseを返す
-
-
-
trueを返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(s, t): s1 = s.split() s2 = t.split() if len(s1) > len(s2): s1,s2 = s2,s1 while(s1): if(s2[0]==s1[0]): s2.pop(0) s1.pop(0) elif(s2[-1]==s1[-1]): s2.pop() s1.pop() else: return(False) return(True) s = "we live at city Kolkata" t = "city Kolkata" print(solve(s, t))
入力
"we live at city Kolkata", "city Kolkata"
出力
True
-
Pythonでノードを交換することで2つのツリーを形成できるかどうかを確認するプログラム
2つのツリーがあるとすると、ノードの左右のサブツリーを何度でも交換して、最初のツリーを2番目のツリーに変換できるかどうかを確認する必要があります。 したがって、入力が次のような場合 その場合、出力はTrueになります これを解決するには、次の手順に従います- que1:=最初はroot0のキュー que2:=最初はroot1のキュー que1とque2は空ではありませんが、実行してください temp1:=新しいリスト、temp2:=新しいリスト values1:=新しいリスト、values2:=新しいリスト que1とque2に含まれる要素の数が
-
与えられたグラフがPythonで2部グラフであるかどうかをチェックするプログラム
無向グラフが1つあるとすると、グラフが2部グラフであるかどうかを確認する必要があります。グラフのすべてのエッジ{u、v}がAに1つのノードuを持ち、Bに別のノードvを持つように、グラフのノードを2つのセットAとBに分割できる場合、グラフは2部グラフであることがわかります。 したがって、入力が次のような場合 次に、出力はTrueになり、[0,4]はセットAにあり、[1,2,3]はセットBにあり、すべてのエッジはAからAまたはBからBではなく、AからBまたはBからAになります。 。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはソースを取ります