>  Q&A  >  본문

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

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

怪我咯怪我咯2720일 전423

모든 응답(2)나는 대답할 것이다

  • 迷茫

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

    부분 문자열 s가 문자열 S에 x번 나타난다고 가정하면 부분 문자열 s의 부분 문자열 s2는 적어도 x번 이상 나타날 것입니다.

    단일 문자는 포함되지 않으므로 가장 자주 나타나는 하위 문자열 중 하나가 2자 하위 문자열이어야 한다는 문제가 있습니다.

    조건에 맞는 것만 찾으려면 2자리 하위 문자열만 찾으면 됩니다

    최대 발생 횟수 = 최대 발생 횟수인 하위 문자열을 모두 찾으려면 좀 더 복잡해집니다.

    1. 문자열 S의 길이가 N
    2이라고 가정합니다. 문자열에서 인접한 두 문자를 N-1 하위 문자열로 결합한 다음 2자 바이트 문자열을 세어 어느 것이 가장 많이 나타나는지 확인합니다.
    3. 1보다 큰 숫자의 2자리 문자열이 없으면 검색이 종료됩니다.
    4. 1보다 큰 2자리 문자열이 여러 개 있으면 이 2자리 문자열을 비교합니다. 첫 번째 문자열이 있는지 확인하려면 문자열의 끝이 두 번째 문자열의 시작 부분에 있는 문자열과 같습니다. 예를 들어, ab는 3번 나타나고 bc는 3번 나타날 수 있습니다. 3자 문자열의 발생 횟수를 결정합니다. 횟수가 2자 문자열의 발생 횟수보다 작으면 답은 2자 문자열이고, 그렇지 않으면 3자 문자열일 수 있습니다. 끈.
    5. 그런 다음 계속해서 4, 5, 6개의 문자열을 감지합니다

    또한 문자열 발생 횟수에 대한 통계 알고리즘을 명확히 해야 합니다. 예를 들어 aaaaaa의 하위 문자열 aa가 3번 나타나는지, 아니면 5번 나타나는지?

    회신하다
    0
  • PHP中文网

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

    정규화가 더 쉬운 것 같아요. 정규식을 사용하지 않는다면 반드시 반복이나 재귀를 통해 해결해야 합니다

    회신하다
    0
  • 취소회신하다