Проверка на палиндром

218
17 ноября 2017, 09:06

Делал задание на проверку палиндром строка или нет. В интернет смотрел и код у всех очень большой и не очень понятен мне. Я сделал сам и получилось как-то очень мало кода. Может я сделал что-то не то? Вроде ж работает и проверяет. Подскажите.

$str = "A nut for a jar of tuna";
$str = strtolower(str_replace(" ","",$str));
for($i = 0; $i < strlen($str); $i++){
    $left .= $str[$i];
    $right = $str[$i].$right;
}
if($left == $right){
    echo "$str - это Палиндром";
}else{
    echo "$str - Это не Палиндром";
}
Answer 1

В целом подход верный, но вот цикл

for($i = 0; $i < strlen($str); $i++){
  $left .= $str[$i];
  $right = $str[$i].$right;
}

можно заменить на метод strrev который переворачивает строку вот дока: http://php.net/manual/ru/function.strrev.php Но если интересует нативный подход, то для проверки слова на палиндром достаточно знать, что одна половина строки равна другой И псевдо код примерно будет выглядить так

function isPalindrome (text)
  if text is null
    return false
  left  0
  right  text.length - 1
  while (left < right)
    if text[left] is not text[right]
      return false
    left  left + 1
    right  right - 1
 return true
Answer 2

Ещё вариант в коллекцию ответов (работает так же и с кириллицей) :

echo palindrome('А роза упала на лапу Азора'); // "Палиндромная строка"

function palindrome($str) {
    $str = str_replace(' ', '', mb_strtolower($str, 'UTF-8'));
    return $str == join(array_reverse(preg_split('||u', $str))) 
        ? 'Палиндромная строка' : 'Простая строка';
}
READ ALSO
Упаковка выборки из 2 таблица в JSON

Упаковка выборки из 2 таблица в JSON

Добрый деньВторой день бьюсь над проблемой: необходимо вернуть JSON объект, для дальнейшей обработки в android-приложении

216
Как вывести данные из БД

Как вывести данные из БД

Здравствуйте, у меня в БД есть поле(varchar) и в нем хранятся слова через запятую (Слово, слово2, слово3) и у меня вопрос: Как правильно с помощью...

170
Замена текстовых запросов

Замена текстовых запросов

Например, я получаю данные через $_POST в виде:

211
Защита curl запроса

Защита curl запроса

Есть curl запрос который принимает данные и записывает в бдВопрос: есть ли какая уязвимость здесь и если есть то как защититься? Я про подделывания...

214