есть строка ‘S’, программа должна найти и напечатать, является ли эта строка палиндромом или нет. Если да, выведите «YES», иначе выведите «NO»
для некоторых слов палиндром это работает как гражданский, а для некоторых это не работает
код:-
<?php
$str = "Civic";
$count = ((strlen($str)+1 ) /2);
$q = "y";
for($i = 0; $i < $count; $i++)
{
$x = 1;
$z = $str[(strlen($str-$x))];
$x = $x+1;
if($str[$i] == $z ) {
$x = $x++;
$q = "y";
} else {
$q = "n";
}
}
if($q == "n") {
echo "No";
} else {
echo "Yes";
}
?>
Пожалуйста, дайте мне несколько советов о моем коде, спасибо
Как насчет другого подхода:
if($str == strrev($str)) {
echo "Yes";
} else {
echo "No";
}
Или короче:
echo ($str == strrev($str)) ? "Yes" : "No";
Но, может быть, проблема в чувствительности к регистру?
echo (strtolower($str) == strrev(strtolower($str))) ? "Yes" : "No";
Других решений пока нет …