Maison  >  Questions et réponses  >  le corps du texte

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

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

怪我咯怪我咯2720 Il y a quelques jours421

répondre à tous(2)je répondrai

  • 迷茫

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

    Supposons que la sous-chaîne s apparaisse x fois dans la chaîne S, alors la sous-chaîne s2 de la sous-chaîne s apparaîtra au moins x fois, ou plus

    Et un seul caractère ne compte pas, alors voici le problème. L'une des sous-chaînes qui apparaît le plus souvent doit être une sous-chaîne de 2 caractères

    Si vous souhaitez simplement en trouver un qui remplit les conditions, il vous suffit de trouver une sous-chaîne de 2 caractères

    Si vous souhaitez retrouver toutes les sous-chaînes avec le nombre maximum d'occurrences = le nombre maximum d'occurrences, ce sera un peu plus compliqué.

    1. Supposons que la longueur de la chaîne S est N
    2. Combinez les deux caractères adjacents de la chaîne en N-1 sous-chaînes, puis comptez les chaînes d'octets de 2 caractères pour voir laquelle apparaît le plus.
    3. S'il n'y a pas de chaîne de 2 caractères avec un nombre supérieur à 1, la recherche se termine
    4. S'il existe plusieurs chaînes de 2 caractères avec des fois supérieures à 1, comparez ces chaînes de 2 caractères. pour voir s'il y a la première La fin de la chaîne est égale à la chaîne au début de la deuxième chaîne. Par exemple, ab apparaît 3 fois et bc apparaît 3 fois. Ensuite, abc peut apparaître plusieurs fois. déterminer l'occurrence de la chaîne de 3 caractères. Le nombre de fois, si le nombre est inférieur au nombre d'occurrences de la chaîne de 2 caractères, alors la réponse est une chaîne de 2 caractères, sinon il peut s'agir d'une chaîne de 3 caractères. chaîne.
    5. Continuez ensuite à détecter les chaînes de 4, 5 et 6 caractères

    De plus, nous devons clarifier l'algorithme statistique pour le nombre d'occurrences d'une chaîne. Par exemple, la sous-chaîne aa dans aaaaaa apparaît-elle 3 fois ou 5 fois ?

    répondre
    0
  • PHP中文网

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

    J’ai l’impression qu’il est plus facile d’être régulier. Si vous n'utilisez pas d'expressions régulières, vous devez absolument effectuer une itération ou une récursivité pour le résoudre

    répondre
    0
  • Annulerrépondre