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 ?
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
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 ?
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