ホームページ  >  に質問  >  本文

java实现求字符串中出现次数最多的字串(单个字符不算)如"abcbcbcabc"的最终答案是bc 共出现了4 次,

如题java实现求字符串中出现次数最多的字串(单个字符不算)如"abcbcbcabc"的最终答案是bc 共出现了4 次,

怪我咯怪我咯2720日前427

全員に返信(2)返信します

  • 迷茫

    迷茫2017-04-18 10:17:27

    部分文字列 s が文字列 S に x 回出現すると仮定すると、部分文字列 s の部分文字列 s2 は少なくとも x 回以上出現します

    1 文字はカウントされないため、最も頻繁に出現する部分文字列の 1 つは 2 文字の部分文字列である必要があります

    条件を満たすものを見つけたいだけの場合は、2 文字の部分文字列を見つけるだけで済みます

    出現回数 = 最大出現回数を持つすべての部分文字列を検索したい場合は、少し複雑になります。

    1. 文字列 S の長さが N であると仮定します。
    2. 文字列内の 2 つの隣接する文字を N-1 個の部分文字列に結合し、2 文字のバイト文字列を数えて、どれが最も多く出現するかを確認します。
    3. 1 より大きい数値を持つ 2 文字の文字列が存在しない場合、検索は終了します。
    4. 等しい倍が 1 より大きい 2 文字の文字列が複数ある場合、それらの 2 文字の文字列を比較します。は最初の文字列の終わり 2 番目の文字列の先頭の文字列と等しい たとえば、ab が 3 回出現し、bc が 3 回出現する場合、 abc が複数回出現する可能性があります。 3 文字の文字列。数値が 2 文字の文字列の出現数より小さい場合、答えは 2 文字の文字列になります。そうでない場合は、3 文字の文字列になる可能性があります。
    5. 続いて4、5、6の文字列を検出します

    さらに、文字列の出現回数の統計アルゴリズムを明確にする必要があります。たとえば、aaaaaa の部分文字列 aa は 3 回出現しますか、それとも 5 回出現しますか?

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:17:27

    レギュラーになるのが少し楽になった気がします。正規表現を使用しない場合は、必ず反復または再帰的に解決する必要があります

    返事
    0
  • キャンセル返事