私はstring str = "aabaa"
非反復部分文字列の総数を取得するにはどうすればよいですか?
その非反復部分文字列が
- B
- AA
- AB
- BA
- AAB
- ABA あると仮定しています
- BAA
- AABA
- ABAA
- aabaa
私はstring str = "aabaa"
非反復部分文字列の総数を取得するにはどうすればよいですか?
その非反復部分文字列が
計算それらsuffix arrayと最長の共通接頭辞配列。
a
1
aa
2
aabaa
1
abaa
0
baa
戻り(n+1)n/2
、サブストリング境界の数、マイナス最長共通接頭辞配列の合計。
(5+1)5/2 - (1+2+1+0) = 15 - 4 = 11.
ありがとう@David Eisenstat –
この特定の問題は、多くのコンテストに頼まれ、さまざまな方法で解決することができるが、それはコンテストに受け入れられて得るためには、時間と空間の複雑さの問題です。 あなたは以下のリンクで解決策を見つけることができます: Generate all unique substrings for given string
https://www.quora.com/Given-a-string-how-do-I-find-the-number-of-distinct-substrings-of-the-string
ありがとうございました。私は論理を持っています。 –
これは宿題の質問のように思えます。あなた自身でそれをやろうとしましたか?あなたは特定の部分にこだわっていますか?さもなければ、私はコーディング演習のかなりの分担をしました。 – kbunarjo
実際にこの質問はhackerrankのコンテストで尋ねられました..最初とformost私はサブ文字列を印刷するためのコードを書くことができません..だから私はサブ文字列を印刷する方法を教えてください –
あなたは部分文字列を取ることができませんか?これを使用してくださいhttp://www.cplusplus.com/reference/string/string/substr/ – Pavel