如果數字或字串分別反轉數字或字母後仍保持相同,則稱為回文結構。那麼如何檢查數字和字串是否為回文結構呢?以下這篇文章就來帶大家了解一下在PHP中檢查數字和字串是否為回文結構的方法,希望對大家有幫助。
一、檢查回文數
這裡我們簡單地使用迭代方法來檢查回文數。每個數字在迭代中被提取並形成相反的數字,最後,檢查它是否與原始數字相同。
下面我們透過程式碼範例來看看實作方法。
<?php header("content-type:text/html;charset=utf-8"); function Palindrome($number){ $temp = $number; $new = 0; while (floor($temp)) { $d = $temp % 10; $new = $new * 10 + $d; $temp = $temp/10; } if ($new == $number){ return 1; } else{ return 0; } } $original = 1441; if (Palindrome($original)){ echo $original."是回文数"; } else { echo $original."不是回文数"; } ?>
輸出:
#二、檢查回文字串
方法1:使用strrev()
strrev()方法在PHP中用於反轉字串。我們可以簡單地使用此方法來反轉字串並將其與未反轉前的字串進行匹配。如果匹配成功,則字串是回文,否則不是回文。
下面我們透過程式碼範例來看看實作方法。
<?php header("content-type:text/html;charset=utf-8"); function Palindrome($string){ if (strrev($string) == $string){ return 1; } else{ return 0; } } $original = "hgbgbgh"; if (Palindrome($original)){ echo $original."是回文字符串"; } else { echo $original."不是回文字符串"; } ?>
#輸出:
#方法2:使用substr()的遞歸方式
substr ()方法用來傳回字串的一部分,稱為子字串。使用該substr()方法,可以透過一種遞歸方式來檢查字串是否為回文。
附註:substr()方法中,不會形成新字串,並且在每次遞歸呼叫中都會修改原始字串。
原理:在每次遞歸呼叫期間,讓第一個字元與字串的最後一個字元進行匹配,如果匹配,則在下一次呼叫期間丟棄這兩個字元。這一直持續到字串的長度減少到0或1,則該字串為回文。
下面我們透過程式碼範例來看看實作方法。
<?php header("content-type:text/html;charset=utf-8"); function Palindrome($string){ //结束递归 if ((strlen($string) == 1) || (strlen($string) == 0)){ echo "回文字符串"; } else{ // 第一个字符与最后一个字符比较 if (substr($string,0,1) == substr($string,(strlen($string) - 1),1)){ // 选中的字母将被丢弃并传递给下一个字符串 return Palindrome(substr($string,1,strlen($string) -2)); } else{ echo "不是回文字符串"; } } } $string = "MALAYALAM"; Palindrome($string); ?>
輸出:
回文字符串
範例說明:
在上面的範例中,檢查字串「MALAYALAM」是否為回文,讓我們看看如何工作的。
在第一步驟中,兩者都是M,比較結束。由於它匹配,它們都被丟棄;下一個要傳遞的字串是“ALAYALA”。同樣,兩個A在兩端都匹配,因此要傳遞的下一個字串是“LAYAL”。這種情況一直持續到只剩下「Y」。因此字串“MALAYALAM”是回文的。
相關影片教學推薦:《PHP教學》
以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以追蹤php中文網相關教學欄位! ! !
以上是PHP如何檢查數字和字串是否為回文結構? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!