如果字符串的反转与字符串相同,则该字符串称为回文字符串。例如,"radar"是回文字符串,但"rubber"不是回文字符串。
方法1:检查回文字符串
在下面的示例中,字符串名为 MyString 是否有回文字符串。 while 循环用于比较字符串的字符。创建两个变量 l 和 r,它们最初指向字符串的第一个和最后一个字符。如果比较的字符不相同,则将变量flag加1并退出循环,否则继续循环。每次迭代后,l 增加 1,r 减少 1,直到它们相互交叉。最后,根据flag变量的值,检查MyString是否有回文字符串。
<?php
function Palindrome($MyString) {
$l = 0;
$r = strlen($MyString) - 1;
$flag = 0;
while($r > $l){
if ($MyString[$l] != $MyString[$r]){
$flag = 1;
break;
}
$l++;
$r--;
}
if ($flag == 0){
echo $MyString." 是一个回文字符串.\n";
} else {
echo $MyString." 不是一个回文字符串.\n";
}
}
Palindrome("radar");
Palindrome("rubber");
Palindrome("malayalam");
?>
上面的代码将给出以下输出:
radar 是一个回文字符串.
rubber 不是一个回文字符串.
malayalam 是一个回文字符串.
方法2:使用 PHP strrev() 函数
使用 PHP strrev() 函数也可以实现同样的效果。
<?php
function Palindrome($MyString) {
$revString = strrev($MyString);
if ($revString == $MyString){
echo $MyString." 是一个回文字符串.\n";
} else {
echo $MyString." 不是一个回文字符串.\n";
}
}
Palindrome("radar");
Palindrome("rubber");
Palindrome("malayalam");
?>
上面的代码将给出以下输出:
radar 是一个回文字符串.
rubber 不是一个回文字符串.
malayalam 是一个回文字符串.