палиндромная программа слов в переполнении стека

есть строка ‘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";
}
?>

Пожалуйста, дайте мне несколько советов о моем коде, спасибо

0

Решение

Как насчет другого подхода:

if($str == strrev($str)) {
echo "Yes";
} else {
echo "No";
}

Или короче:

echo ($str == strrev($str)) ? "Yes" : "No";

Но, может быть, проблема в чувствительности к регистру?

echo (strtolower($str) == strrev(strtolower($str))) ? "Yes" : "No";
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]