Detaillierte Erklärung und Fälle des Sonntagsalgorithmus des PHP-Matching-Algorithmus

墨辰丷
Freigeben: 2023-03-26 07:26:01
Original
1054 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die detaillierten Erklärungen und Fälle des Sunday-Algorithmus des PHP-Matching-Algorithmus vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Der Sunday-Algorithmus ist ein String-Pattern-Matching, das 1990 von Daniel M. Sunday vorgeschlagen wurde. Die Kernidee besteht darin, dass der Algorithmus während des Matching-Prozesses, wenn festgestellt wird, dass die Musterzeichenfolge nicht übereinstimmt, so viele Zeichen wie möglich für den nächsten Matching-Schritt überspringen kann, wodurch die Matching-Effizienz verbessert wird.

Der Fall ist wie folgt:

<?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);
Nach dem Login kopieren

Laufendes Ergebnis:

The first match index is 25
Nach dem Login kopieren

Verwandte Empfehlungen:

Erklärung der PHP-Stack-Datenstruktur und des Klammerabgleichs Algorithmus-Beispiele

Detaillierte Erläuterung des PHP-String-Matching-Algorithmus

Beispiel für die Implementierung des String-Matching-Algorithmus durch PHP Sonntagsalgorithmus

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung und Fälle des Sonntagsalgorithmus des PHP-Matching-Algorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!