Pythonのテキストで指定された2つの単語の最小距離を見つけるプログラム
3つの文字列text、w1、およびw2があるとします。テキストは異なる単語の文章です。テキスト内のw1とw2の任意の2つの出現の間の最小距離を見つける必要があります。距離は、それらの間の単語数で測定されます。 w1またはw2のいずれかがテキストに含まれていない場合は、-1を返します。
したがって、入力がtext ="joy happy power happy joy joy power happy limit" w1 ="power" w2 ="limit"の場合、間に「happy」という単語が1つしかないため、出力は1になります。パワーと制限。
これを解決するには、次の手順に従います-
-
index1:=null、index2:=null
-
距離:=999999
-
テキスト内の各インデックスidxと単語wについて、実行します
-
wがw1と同じ場合、
-
index2がnullでない場合、
-
距離:=最小距離と(| idx --index2 | --1)
-
-
index1:=idx
-
-
wがw2と同じ場合、
-
index1がnullでない場合、
-
距離:=最小距離と(| idx --index1 | --1)
-
-
index2:=idx
-
-
-
index1がnullでなく、index2がnullでない場合、
-
戻り距離
-
-
-1を返す
例
理解を深めるために、次の実装を見てみましょう
def solve(text, w1, w2): index1 = None index2 = None distance = 2000000 for idx, word in enumerate(text.split(" ")): if word == w1: if index2 is not None: distance = min(distance, abs(idx - index2) - 1) index1 = idx if word == w2: if index1 is not None: distance = min(distance, abs(idx - index1) - 1) index2 = idx if index1 is not None and index2 is not None: return distance return -1 text = "joy happy power happy joy joy power happy limit" w1 = "power" w2 = "limit" print(solve(text, w1, w2))>
入力
"joy happy power happy joy joy power happy limit", "power", "limit"
出力
1
-
Pythonの二分木で2つのノード間の距離を見つけるプログラム
二分木が与えられ、二分木の2つのノード間の距離を見つけるように求められたとします。グラフのように2つのノード間のエッジを見つけ、エッジの数またはそれらの間の距離を返します。ツリーのノードは以下のような構造になっています- data : <integer value> right : <pointer to another node of the tree> left : <pointer to another node of the tree> したがって、入力が次のような場合 そして、その間の距離を見つけなければならないノードは2と8です。その場
-
2つの文字列から珍しい単語を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの文字列が与えられているので、与えられた文字列から珍しい単語を取得する必要があります。 次に、以下の実装のソリューションを見てみましょう- 例 # uncommon words def find(A, B): # count count = {} # insert in A for word in A.split(): count[word] = coun