Maison > développement back-end > tutoriel php > Exemple de php implémentant l'algorithme du dimanche de l'algorithme de correspondance de chaînes

Exemple de php implémentant l'algorithme du dimanche de l'algorithme de correspondance de chaînes

黄舟
Libérer: 2023-03-17 20:02:01
original
5725 Les gens l'ont consulté

Dans notre travail de développement, nous rencontrons souvent divers algorithmes. Je pense que de nombreux amis connaissent également l'algorithme de correspondance StringL'algorithme de correspondance est le plus fréquemment utilisé par nous. Aujourd'hui, nous allons le présenter en détail. un exemple d'algorithme du dimanche implémentant un algorithme de correspondance de chaînes en PHP !

Exemple d'algorithme du dimanche dans l'implémentation PHP de l'algorithme de correspondance de chaînes

<?php
/*
 *@param $pattern 模式串
 *@param $text 待匹配串
 */
function mySunday($pattern = &#39;&#39;,$text = &#39;&#39;){
    if(!$pattern || !$text) return false;
    $pattern_len = mb_strlen($pattern);
    $text_len = mb_strlen($text);
    if($pattern_len >= $text_len) return false;
    $i = 0;
    for($i = 0; $i < $pattern_len; $i++){ //组装以pattern中的字符为下标的数组
        $shift[$pattern[$i]] = $pattern_len - $i;
    }
    while($i <= $text_len - $pattern_len){
        $nums = 0;     //匹配上的字符个数
        while($pattern[$nums] == $text[$i + $nums]){
            $nums++;
            if($nums == $pattern_len){
                return "The first match index is $i\n";
            }
        }
        if($i + $pattern_len < $text_len && isset($shift[$text[$i + $pattern_len]])){ //判断模式串后一位字符是否在模式串中
            $i += $shift[$text[$i + $pattern_len]];      //对齐该字符
        }else{
            $i += $pattern_len;      //直接滑动pattern_len位
        }
    }
}
$text = "I am testing mySunday on sunday!";
$pattern = "sunday";
echo mySunday($pattern,$text);
Copier après la connexion

Résumé :

Cet article utilise des exemples de code pour expliquer plus intuitivement à tout le monde l'algorithme de correspondance de chaînes PHP du dimanche. Je pense que tous mes amis comprendront mieux. J'espère que cela vous sera utile dans votre travail !

Recommandations associées :

Implémentation PHP de l'algorithme de correspondance maximale avant

L'algorithme de correspondance de chaîne le plus simple en php

Exemple d'algorithme de correspondance de chaîne unique en php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal