有効な単語を含む辞書があるとします。DPの繰り返しの関係は?
すべてのスペースが削除された入力文字列が与えられた場合、その文字列が有効な単語で構成されているかどうかを判断します。
辞書は、O(1)ルックアップを提供するハッシュテーブルであると仮定できます。
これについては繰り返してください。私は本の中でこの質問を見つけましたが、この本は無回答です。
有効な単語を含む辞書があるとします。DPの繰り返しの関係は?
すべてのスペースが削除された入力文字列が与えられた場合、その文字列が有効な単語で構成されているかどうかを判断します。
辞書は、O(1)ルックアップを提供するハッシュテーブルであると仮定できます。
これについては繰り返してください。私は本の中でこの質問を見つけましたが、この本は無回答です。
IsWordValid(S) = for word in dict:
if S.startsWith(word) and IsWordValid(S[word.length:])
return true
return false
IsWordValid(null) = true
これは繰り返しの関係ですか? – Programmer
@Programmerそうですね... –
動的プログラミングの再帰関係は一般にトップダウンです。これはボトムアップです。私はそれがどのように表示されるのかわかりません – Programmer
ここはMathematicaのコードです。私は最近のコードゴルフのために開発を始めました。
これは最小限の一致、非貪欲な、再帰アルゴリズムです。それが文(スペースなし)「ペンは剣よりもmighterですが、」返すことを意味:)
findAll[s_] :=
Module[{a = s, b = "", c, sy = "="},
While[
StringLength[a] != 0,
j = "";
While[(c = findFirst[a]) == {} && StringLength[a] != 0,
j = j <> StringTake[a, 1];
sy = "~";
a = StringDrop[a, 1];
];
b = b <> " " <> j ;
If[c != {},
b = b <> " " <> c[[1]];
a = StringDrop[a, StringLength[c[[1]]]];
];
];
Return[{StringTrim[StringReplace[b, " " -> " "]], sy}];
]
findFirst[s_] :=
If[s != "" && (c = DictionaryLookup[s]) == {},
findFirst[StringDrop[s, -1]], Return[c]];
サンプル入力
ss = {"twodreamstop",
"onebackstop",
"butterfingers",
"dependentrelationship",
"payperiodmatchcode",
"labordistributioncodedesc",
"benefitcalcrulecodedesc",
"psaddresstype",
"ageconrolnoticeperiod",
"month05",
"as_benefits",
"fname"}
出力{ "ペンは剣よりもかもしれない小胞体である}
twodreamstop = two dreams top
onebackstop = one backstop
butterfingers = butterfingers
dependentrelationship = dependent relationship
payperiodmatchcode = pay period match code
labordistributioncodedesc ~ labor distribution coded es c
benefitcalcrulecodedesc ~ benefit c a lc rule coded es c
psaddresstype ~ p sad dress type
ageconrolnoticeperiod ~ age con rol notice period
month05 ~ month 05
as_benefits ~ as _ benefits
fname ~ f name
HTH
あなたはトラブルコミを持っていますアルゴリズムとの関連性を調べたり、アルゴリズムの反復関係を見つけることはできますか? –
@マーク:recurrence rlation – Programmer
あなたは、定期的な関係を見つけることに問題がある場合は、なぜあなたの投稿にアルゴリズムを記述していないのですか? –