問題を解決しようとしています。 k-equalであり、str1の長さkのすべてのサブ文字列がstr2に現れ、その逆も同様です。サブストリングのオカレンス数は等しくなくてもかまいません。その文字列はデフォルトでは0であるとみなすことができます。最後に、kは見つけることができる最高の数でなければなりません。したがって、両方の文字列に表示される長さ1と長さ2の部分文字列がある場合、長さ2の文字列を返す必要があります。2つの文字列が与えられた場合、それらがk-equalであるかどうかチェックし、長さkのすべての部分文字列が両方に現れ、最大でなければならない
コレクションでこれをどのように行うことができますか?たとえば、HashMapを使用します。
私は、str1から与えられたkのすべての部分文字列を 'Set'に入れるだけです(' HashSet'は十分に機能するかもしれません)。set1と呼ぶことにしましょう。それから私はstr2からのすべての部分文字列に対して同じことを行い、別のset2に入れます。 set2の部分文字列を集めている間、文字列がすでにset1に入っているかどうかチェックします。そうでなければ、すぐに中断できます。私は*両方のセットのサイズが等しい場合は、(前のチェックの後に)それらが与えられたkに対してk-equalであると言うのに十分だと思う。 k = 1で始まり、すべての反復の後で、それがもはや動作しないkを見つけるまで増分する。 –
@ CrushaK.Roolいいアイデアのように思えます。私はできるだけ早くあなたを更新します。どうも! –