Pythonの2つの単語間の最小距離
2つの文字列word0とword1とテキストがあるとします。与えられたテキスト内のword0とword1の任意の2つの出現の間の最小距離を見つける必要があります。ここで、距離は単語数で測定されます。それらがテキストに存在しない場合は、-1を返します。
したがって、入力がtext ="cat dog abcd dog cat cat abcd dog wxyz"、word0 ="abcd"、word1 ="wxyz"の場合、"の間に"dog "という単語が1つあるため、出力は1になります。 abcd」と「wxyz」
これを解決するには、次の手順に従います-
- word_list:=テキストからの単語のリスト
- ans:=word_listのサイズ
- L:=null
- 範囲0からword_list-1のサイズのRの場合、実行
- word_list [R]がword0の場合、またはword_list [R]がword1の場合、
- Lがnullでなく、word_list[R]がword_list[L]でない場合、
- ans:=最小のansおよびR --L-1
- L:=R
- Lがnullでなく、word_list[R]がword_list[L]でない場合、
- word_list [R]がword0の場合、またはword_list [R]がword1の場合、
- ansがword_listのサイズと同じ場合は-1を返し、それ以外の場合はans
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, text, word0, word1): word_list = text.split() ans = len(word_list) L = None for R in range(len(word_list)): if word_list[R] == word0 or word_list[R] == word1: if L is not None and word_list[R] != word_list[L]: ans = min(ans, R - L - 1) L = R return -1 if ans == len(word_list) else ans ob = Solution() text = "cat dog abcd dog cat cat abcd dog wxyz" word0 = "abcd" word1 = "wxyz" print(ob.solve(text, word0, word1))>
入力
"cat dog abcd dog cat cat abcd dog wxyz", "abcd", "wxyz"
出力
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