私はこの興味深い質問をオンラインで見つけたばかりで、それをどのように進めればよいかについて非常に困惑しています.
Write a function that finds all the different ways you can split up a word into a
concatenation of two other words.
これは、サフィックス ツリーが使用されるものですか?
私はコードを探しているのではなく、これを進めるための概念的な方法です。
私はこの興味深い質問をオンラインで見つけたばかりで、それをどのように進めればよいかについて非常に困惑しています.
Write a function that finds all the different ways you can split up a word into a
concatenation of two other words.
これは、サフィックス ツリーが使用されるものですか?
私はコードを探しているのではなく、これを進めるための概念的な方法です。
いくつかの疑似コード:
foreach place you can split the word:
split the word.
check if both sides are valid words.
素敵な答えをお探しの場合は、有効な言葉の定義をお知らせください。
単語がアルファベットで定義された文字列であり、長さがゼロより大きいと仮定します。サフィックス ツリーを使用できます。
以下は、O(n) 時間しかかからない単純化されたアルゴリズムです。
Convert the word into a character array.
Traverse through the length of the array and for each i just take two strings (0 to i) and
(i+1 to length of the array-1).
ゼロより大きい長さなどの基本条件をカバーすることを忘れないでください。