PythonのWordBreakII
空でない文字列sとwordDictという辞書があるとします。この辞書には空でない単語のリストが含まれており、sにスペースを追加して、各単語が次のような文を作成します。有効な辞書の単語。そのような可能な文をすべて見つけなければなりません。 「appleraincoat」と辞書は[「app」、「apple」、「rain」、「coat」、「raincoat」]
これを解決するには、次の手順に従います-
-
マップメモを1つ作成する
-
解決と呼ばれるメソッドを定義します。これには文字列とwordDictが必要です
-
sがnullの場合、空のリストを返します
-
メモにsがある場合、-
-
メモを返す
-
-
配列を作成するret
-
1からsのサイズまでの範囲のiの場合
-
インデックス0からi– 1までのsのサブストリングがwordDictに存在する場合、
-
ソルブのjの場合(iからendまでのsの部分文字列、wordDict)
-
p:=インデックス0からi – 1までのsの部分文字列で、スペースとjを連結してから、左右から余分なスペースをクリアします-
-
pをretに挿入
-
-
-
memo [s]:=ret
-
メモを返す
例
理解を深めるために、次の実装を見てみましょう-
class Solution(object):
def wordBreak(self, s, wordDict):
self.memo = {}
wordDict = set(wordDict)
return self.solve(s,wordDict)
def solve(self,s, wordDict):
if not s:
return ['']
if s in self.memo:
return self.memo[s]
ret = []
for i in range(1,len(s)+1):
if s[:i] in wordDict:
for j in self.solve(s[i:],wordDict):
ret.append((s[:i] + " " + j).strip())
self.memo[s] = ret
return self.memo[s]
ob = Solution()
print(ob.wordBreak("appleraincoat",["app","apple","rain","coat","rain coat"])) 入力
"appleraincoat" ["app","apple","rain","coat","raincoat"]
出力
['apple rain coat', 'apple raincoat']
-
PythonTkinterを使用した単語辞書
この記事では、PyDictionaryとTkinterModuleを使用してGUIベースの辞書を作成します。 PyDictionaryは、意味のある翻訳、反意語、単語の同義語を取得するのに役立つPythonモジュールです。 WordNetを使用します 意味を取得するためのGoogle、翻訳のためのGoogle、類義語と反意語を取得するためのsynonym.com。 PyDictionaryは、BeautifulSoup、Requestsモジュールを依存関係として使用します。 アプリケーションを作成するには、まずpip install PyDictionaryを使用してこれらのモジュール
-
Pythonを使用してWordCloudを作成する
この問題では、いくつかのテキストを含むファイルがあります。これらのテキストと1つのマスキング画像からワードクラウドを作成する必要があります。プログラムは、単語の雲の画像を pngとして保存します フォーマット。 この問題を実装するには、Pythonのいくつかのライブラリを使用する必要があります。ライブラリはmatplotlib、wordcloud、numpy、tkinter、PILです。 これらのライブラリをインストールするには、次のコマンドに従う必要があります- ライブラリのセットアップ $ sudo pip3 install matplotlib $ sudo pip3 instal