Maison  >  Article  >  développement back-end  >  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

黄舟
黄舟original
2017-12-06 13:48:355661parcourir

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);

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!

Déclaration:
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