Maison > développement back-end > tutoriel php > Méthode d'implémentation de l'ordre inverse des chaînes PHP

Méthode d'implémentation de l'ordre inverse des chaînes PHP

墨辰丷
Libérer: 2023-03-28 08:28:01
original
3052 Les gens l'ont consulté

Cet article présente principalement la méthode d'implémentation de l'ordre inverse des chaînes en PHP.Il résume et analyse la fonction strrev, la méthode de bissection, la méthode de boucle, la méthode de récursion et d'autres techniques d'implémentation d'opérations d'ordre inverse de chaîne couramment utilisées sous forme d'exemples. dans le besoin peuvent s'y référer. Les détails ci-dessous

sont les suivants :

Concernant l'ordre inverse des chaînes, le code de test le plus simple utilisant la fonction PHP strrev() est le suivant :

header('Content-type: text/html; charset=utf-8');
$str = implode('', range(9, 0));
print &#39;< p><strong>Before reversed: </strong>&#39;.$str.&#39;< /p>&#39;;
print &#39;< p>< strong>After reversed: < /strong>&#39;.strrev($str).&#39;< /p>&#39;;
/*
输出如下:
Before reversed: 9876543210
After reversed: 0123456789
*/
Copier après la connexion

Comment implémenter cela sans utiliser la fonction PHP intégrée strrev() ? Trois méthodes supplémentaires (méthode de bissection, méthode de boucle, méthode récursive) sont données ici, mais aucun test de performances n'est effectué.

1. Dichotomie

/**
* 二分法实现字符串逆序排列
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str=&#39;&#39;) {
  $len = strlen($str);
  //不能使用count或sizeof
  $mid = floor($len/2);
  for ($i=0; $i<$mid; $i++) {
    $temp = $str[$i];
    $str[$i] = $str[$len-$i-1];
    $str[$len-$i-1] = $temp;
  }
  return $str;
}
Copier après la connexion

2. 🎜>

/**
* 循环实现对字符串的逆序排列(效率比二分法低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str=&#39;&#39;) {
  $result = &#39;&#39;;
  for ($i=1; $i<=strlen($str); $i++) {
    $result .= substr($str, -$i, 1);
  }
  return $result;
}
Copier après la connexion

3. Méthode récursive

/**
* 递归实现对字符串的逆序排列(效率低)
* @param string $str 源字符串
* @return string 返回逆序后的字符串
*/
function reverse($str=&#39;&#39;) {
  static $result = &#39;&#39;;
  /* 用堆栈来理解递归调用 */
  if (strlen($str) > 0) {
    reverse(substr($str, 1));
    $result .= substr($str, 0, 1);
    //此句必须放在上一语句之后
  }
  return $result;
}
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.


Recommandations associées :

méthode php pour obtenir un nombre spécifié de chaînes aléatoires

php implémente l'interception personnalisée de la stringversion -utf8 chinoise

php searchstring Explication détaillée d'intercepter la première position non-0 dans

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