Pythonの辞書で最長の単語
英語の辞書を表す単語のリストがあるとすると、与えられた単語リストの中で、単語内の他の単語によって一度に1文字ずつ作成できる最長の単語を見つける必要があります。考えられる答えが複数ある場合は、語彙の順序が最も小さい最長の単語を返します。答えがない場合は、空の文字列を返します。
したがって、入力が["h"、 "he"、 "hel"、 "hell"、 "hello"]の場合、出力は "hello"
になります。これを解決するには、次の手順に従います-
- トライ:=新しい地図
- 関数insert()を定義します。これには言葉が必要です
- 今:=トライ
- 単語のcごとに、
- cが今入っていない場合-
- now [c] ={'#'、False}、次に
- 今:=今[c]
- now ['#']:=True
- cが今入っていない場合-
- 関数search()を定義します。これには言葉が必要です
- 今:=トライ
- 単語のcごとに、
- 現在ではなく['#']がTrueの場合、
- falseを返す
- 今:=今[c]
- 今すぐ戻る['#']
- 現在ではなく['#']がTrueの場合、
- 単語内の各単語について、
- insert(word)を呼び出す
- ans:=空白の文字列
- 単語内の各単語について、
- search(word)and(size of word> size of ans or(size is same as size of ans and word
- ans:=word
- search(word)and(size of word> size of ans or(size is same as size of ans and word
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def longestWord(self, words): self.trie = {} def insert(word): now = self.trie for c in word: if c not in now: now[c] = {'#': False} now = now[c] now['#'] = True def search(word): now = self.trie for c in word: if '#' in now and not now['#']: return False now = now[c] return now['#'] for word in words: insert(word) ans = "" for word in words: if (search(word) and (len(word) > len(ans) or (len(word) == len(ans) and word < ans))): ans = word return ans ob = Solution() print(ob.longestWord(["h","he","hel","hell", "hello"]))
入力
["h","he","hel","hell", "hello"]
出力
hello
-
Python –文字列内の単語の頻度
文字列の省略形を使用して単語の頻度を見つける必要がある場合は、辞書の理解を使用できます。 例 以下は同じもののデモンストレーションです my_str = 'Hi there Will, how are you Will, Will you say Hi to me' print("The string is : " ) print(my_str) my_result = {key: my_str.count(key) for key in my_str.split()} print("The word frequency is : ")
-
PythonTkinterを使用した単語辞書
この記事では、PyDictionaryとTkinterModuleを使用してGUIベースの辞書を作成します。 PyDictionaryは、意味のある翻訳、反意語、単語の同義語を取得するのに役立つPythonモジュールです。 WordNetを使用します 意味を取得するためのGoogle、翻訳のためのGoogle、類義語と反意語を取得するためのsynonym.com。 PyDictionaryは、BeautifulSoup、Requestsモジュールを依存関係として使用します。 アプリケーションを作成するには、まずpip install PyDictionaryを使用してこれらのモジュール