日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP 逆转字符串与逆转句子

發布時間:2023/12/19 php 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP 逆转字符串与逆转句子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 <?php 2 #顛倒字符串 3 4 #將字符串從頭和尾向中間遍歷,交換位置 5 function cstrrev(&$str, $begin, $len) { 6 $i = $begin; 7 $j = $begin + $len - 1; 8 while ($i < $j) { 9 $temp = $str[$i]; 10 $str[$i] = $str[$j]; 11 $str[$j] = $temp; 12 $i++; 13 $j--; 14 } 15 } 16 17 #逆轉句子,但不逆轉單詞 18 19 #第一種方法,先將句子整個逆轉,再將單詞逐個逆轉,復雜度為O(2n) 20 function sentence_rev(&$s) { 21 cstrrev($s, 0, strlen($s)); 22 $i = 0; 23 $j = 0; 24 while ($j < strlen($s)) { 25 #遇到空格即為一個單詞,將該單詞逆轉 26 if ($s[$j] == " " || $j == strlen($s) - 1) { 27 cstrrev($s, $i, $j - $i); 28 $i = $j + 1; 29 } 30 $j++; 31 } 32 } 33 34 #第二種方法,每次遇到空格即為一個單詞,將該單詞入棧,然后依次出棧,時間復雜度為O(n),空間復雜度為O(n),其中k為單詞數 35 function sentence_rev2($s) { 36 $stack = array(); 37 $word = ""; 38 $i = 0; 39 while ($i < strlen($s)) { 40 if ($i == strlen($s) - 1) { 41 $word .= $s[$i]; 42 array_push($stack, $word); 43 } 44 if ($s[$i] == " ") { 45 array_push($stack, $word); 46 $word = ""; 47 } else { 48 $word .= $s[$i]; 49 } 50 $i++; 51 } 52 53 $sr = ""; 54 while (!empty($stack)) { 55 $sr .= array_pop($stack) . " "; 56 } 57 58 return substr($sr, 0, strlen($sr) - 1); 59 } 60 61 $str = "abcdefg"; 62 cstrrev($str, 0, strlen($str)); 63 echo $str . "<br>"; 64 $s = "I am alexis"; 65 sentence_rev($s); 66 echo $s . "<br>"; 67 $s2 = sentence_rev2("You are not alexis"); 68 echo $s2; 69 ?>

gfedcba
alexis am I
alexis not are You

總結

以上是生活随笔為你收集整理的PHP 逆转字符串与逆转句子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。