Le problème que vous résolvez est le problème de "correspondance exacte des chaînes". La solution naïve s'exécute en O (n^2), mais vous pouvez faire beaucoup mieux que cela. Certains algorithmes linéaires pour résoudre ce problème sont Knuth-Morris-Pratt (KMP), Boyer-Moore et Apostolico-Giancarlo. Une autre façon de le résoudre est de construire un automate à états finis qui entre dans un état acceptant lorsqu'il voit la chaîne du motif. La meilleure solution possible est O (n), et tous ceux qui ont le pire temps de fonctionnement. Vous devez scanner la chaîne d'un bout à l'autre; cependant, il est possible de sauter une fraction des caractères (ce que feront Boyer-Moore et Apostolico-Giancarlo), car certaines discordances peuvent impliquer d'autres discordances. Si vous avez besoin de coder vous-même, je vous recommande d'utiliser l'algorithme de Knuth-Morris-Pratt, car il est un peu plus intuitif et plus facile à implémenter que les autres solutions que j'ai mentionnées. La plupart des langages de programmation, cependant, ont une fonction "indexOf" ou "find" qui résoudra cela pour vous.
Dupliquer: http://stackoverflow.com/questions/1261041/substring-algorithm – outis