<?php
$text = "Хуй свиньи" ;
$result = 'Указанная строка - палиндром' ;
$k = 0 ;
// Перевожу всю строку в нижний регистр;
// Конвертирую полученную строку в массив;
//Прохожусь циклом по каждому элементу массива и удаляю из него пробелы;
foreach ( $characters as $number => $character ) {
if ( $character == " " ) {
unset ( $characters [ $number ] ) ; }
}
// "Клею" элементы массива(уже без пробелов) обратно в строку;
$textWithoutSpace = implode ( "" , $characters ) ; // Считаю длинну всей строки;
echo "Общее количество символов в вводной строке: $length \n " ;
// Считаю половину длинны с округлением в меньшую сторону;
$halfLength = floor ( $length / 2 ) ; //Прохожу циклом половину строки( с начала и с конца);
for ( $i = 0 , $n =- 1 ; $i <= $halfLength ; $i ++, $n -- ) {
//Параметр для функции mb_substr, определяющий элемент с конца строки;
$podstroka1 = mb_substr ( $textWithoutSpace , $i , 1 ) ; //Беру 1-й символ с начала; $podstroka2 = mb_substr ( $textWithoutSpace , $n , 1 ) ; //Беру 1-й символ с конца; $j = $i + 1 ; // Счетчик номера символа с начала строки для вывода на экран ( чтобы нумерация шла не с нуля, но с единицы);
$f = abs ( $n ) ; // Аналогично для счетчика с конца строки, дабы значение не было отрицательным; //Если симметричо расположенные символы одинаковые - вывожу соответствующее сообщение;
if ( $podstroka1 == $podstroka2 ) {
echo "$j символ с начала строки: [$podstroka1 ] совпал с симметричным ему $f символом [$podstroka2 ] c конца строки \n " ;
} else {
echo "$j -й символ с начала строки: [$podstroka1 ] не совпал с симметричным ему $f -ым символом с конца: [$podstroka2 ] \n " ;
$k ++; // Иначе же вывожу сообщение и увеличиваю счетчик $k на единицу;
}
}
//Условием палиндрома является совпадение всех равноудаленных символов с обоих концов строки, если хотя бы раз это условие не выполнится - счетчик $k будет отличаться от нуля, а строка - не будет являться палиндромом;
if ( $k == 0 ) {
echo "$result \n " ;
} else {
echo "$text не является палиндромом\n " ;
} //Мимо анон-даун, который не может в логику и алгоритмы. Покритикуйте, что ли.
?>
PD9waHAKZXJyb3JfcmVwb3J0aW5nKC0xKTsKbWJfaW50ZXJuYWxfZW5jb2RpbmcoIlVURi04Iik7CiR0ZXh0ICAgICAgID0gItCl0YPQuSDRgdCy0LjQvdGM0LgiOwokcmVzdWx0ICAgICA9ICfQo9C60LDQt9Cw0L3QvdCw0Y8g0YHRgtGA0L7QutCwIC0g0L/QsNC70LjQvdC00YDQvtC8JzsKJGsgICAgICAgICAgPSAwOwovLyDQn9C10YDQtdCy0L7QttGDINCy0YHRjiDRgdGC0YDQvtC60YMg0LIg0L3QuNC20L3QuNC5INGA0LXQs9C40YHRgtGAOwokbG93Q2FzZSAgICA9IG1iX3N0cnRvbG93ZXIoJHRleHQpOwovLyDQmtC+0L3QstC10YDRgtC40YDRg9GOINC/0L7Qu9GD0YfQtdC90L3Rg9GOINGB0YLRgNC+0LrRgyDQsiDQvNCw0YHRgdC40LI7CiRjaGFyYWN0ZXJzID0gcHJlZ19zcGxpdCgiLy91IiwgJGxvd0Nhc2UpOwovL9Cf0YDQvtGF0L7QttGD0YHRjCDRhtC40LrQu9C+0Lwg0L/QviDQutCw0LbQtNC+0LzRgyDRjdC70LXQvNC10L3RgtGDINC80LDRgdGB0LjQstCwINC4INGD0LTQsNC70Y/RjiDQuNC3INC90LXQs9C+INC/0YDQvtCx0LXQu9GLOwpmb3JlYWNoICgkY2hhcmFjdGVycyBhcyAkbnVtYmVyID0+ICRjaGFyYWN0ZXIpIHsKICAgIGlmICgkY2hhcmFjdGVyID09ICIgIikgewogICAgICAgIHVuc2V0KCRjaGFyYWN0ZXJzWyRudW1iZXJdKTsKICAgIH0KfQovLyAi0JrQu9C10Y4iINGN0LvQtdC80LXQvdGC0Ysg0LzQsNGB0YHQuNCy0LAo0YPQttC1INCx0LXQtyDQv9GA0L7QsdC10LvQvtCyKSDQvtCx0YDQsNGC0L3QviDQsiDRgdGC0YDQvtC60YM7CiR0ZXh0V2l0aG91dFNwYWNlID0gaW1wbG9kZSgiIiwgJGNoYXJhY3RlcnMpOwovLyDQodGH0LjRgtCw0Y4g0LTQu9C40L3QvdGDINCy0YHQtdC5INGB0YLRgNC+0LrQuDsKJGxlbmd0aCAgICAgICAgICAgPSBtYl9zdHJsZW4oJHRleHRXaXRob3V0U3BhY2UpOwplY2hvICLQntCx0YnQtdC1INC60L7Qu9C40YfQtdGB0YLQstC+INGB0LjQvNCy0L7Qu9C+0LIg0LIg0LLQstC+0LTQvdC+0Lkg0YHRgtGA0L7QutC1OiAkbGVuZ3RoXG4iOwovLyDQodGH0LjRgtCw0Y4g0L/QvtC70L7QstC40L3RgyDQtNC70LjQvdC90Ysg0YEg0L7QutGA0YPQs9C70LXQvdC40LXQvCDQsiDQvNC10L3RjNGI0YPRjiDRgdGC0L7RgNC+0L3RgzsKJGhhbGZMZW5ndGggICAgICAgPSBmbG9vcigkbGVuZ3RoIC8gMik7Ci8v0J/RgNC+0YXQvtC20YMg0YbQuNC60LvQvtC8INC/0L7Qu9C+0LLQuNC90YMg0YHRgtGA0L7QutC4KCDRgSDQvdCw0YfQsNC70LAg0Lgg0YEg0LrQvtC90YbQsCk7CmZvciAoJGkgPSAwLCRuPS0xOyAkaSA8PSAkaGFsZkxlbmd0aDsgJGkrKywkbi0tKSB7CiAgICAvL9Cf0LDRgNCw0LzQtdGC0YAg0LTQu9GPINGE0YPQvdC60YbQuNC4IG1iX3N1YnN0ciwg0L7Qv9GA0LXQtNC10LvRj9GO0YnQuNC5INGN0LvQtdC80LXQvdGCINGBINC60L7QvdGG0LAg0YHRgtGA0L7QutC4OwogICAgJHBvZHN0cm9rYTEgPSBtYl9zdWJzdHIoJHRleHRXaXRob3V0U3BhY2UsICRpLCAxKTsgLy/QkdC10YDRgyAxLdC5INGB0LjQvNCy0L7QuyDRgSDQvdCw0YfQsNC70LA7CiAgICAkcG9kc3Ryb2thMiA9IG1iX3N1YnN0cigkdGV4dFdpdGhvdXRTcGFjZSwgJG4sIDEpOy8v0JHQtdGA0YMgMS3QuSDRgdC40LzQstC+0Lsg0YEg0LrQvtC90YbQsDsKICAgICRqPSRpKzE7IC8vINCh0YfQtdGC0YfQuNC6INC90L7QvNC10YDQsCDRgdC40LzQstC+0LvQsCDRgSDQvdCw0YfQsNC70LAg0YHRgtGA0L7QutC4INC00LvRjyDQstGL0LLQvtC00LAg0L3QsCDRjdC60YDQsNC9ICgg0YfRgtC+0LHRiyDQvdGD0LzQtdGA0LDRhtC40Y8g0YjQu9CwINC90LUg0YEg0L3Rg9C70Y8sINC90L4g0YEg0LXQtNC40L3QuNGG0YspOwogICAgJGY9YWJzKCRuKTsgLy8g0JDQvdCw0LvQvtCz0LjRh9C90L4g0LTQu9GPINGB0YfQtdGC0YfQuNC60LAg0YEg0LrQvtC90YbQsCDRgdGC0YDQvtC60LgsINC00LDQsdGLINC30L3QsNGH0LXQvdC40LUg0L3QtSDQsdGL0LvQviDQvtGC0YDQuNGG0LDRgtC10LvRjNC90YvQvDsKICAgIC8v0JXRgdC70Lgg0YHQuNC80LzQtdGC0YDQuNGH0L4g0YDQsNGB0L/QvtC70L7QttC10L3QvdGL0LUg0YHQuNC80LLQvtC70Ysg0L7QtNC40L3QsNC60L7QstGL0LUgLSDQstGL0LLQvtC20YMg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQtdC1INGB0L7QvtCx0YnQtdC90LjQtTsgCiAgICBpZiAoJHBvZHN0cm9rYTEgPT0gJHBvZHN0cm9rYTIpIHsKICAgICAgICBlY2hvICIkaiDRgdC40LzQstC+0Lsg0YEg0L3QsNGH0LDQu9CwINGB0YLRgNC+0LrQuDogWyRwb2RzdHJva2ExXSDRgdC+0LLQv9Cw0Lsg0YEg0YHQuNC80LzQtdGC0YDQuNGH0L3Ri9C8INC10LzRgyAkZiDRgdC40LzQstC+0LvQvtC8IFskcG9kc3Ryb2thMl0gYyDQutC+0L3RhtCwINGB0YLRgNC+0LrQuCBcbiI7IAogICAgfSBlbHNlIHsKICAgICAgICBlY2hvICIkai3QuSDRgdC40LzQstC+0Lsg0YEg0L3QsNGH0LDQu9CwINGB0YLRgNC+0LrQuDogWyRwb2RzdHJva2ExXSDQvdC1INGB0L7QstC/0LDQuyDRgSDRgdC40LzQvNC10YLRgNC40YfQvdGL0Lwg0LXQvNGDICRmLdGL0Lwg0YHQuNC80LLQvtC70L7QvCDRgSDQutC+0L3RhtCwOiBbJHBvZHN0cm9rYTJdIFxuIjsKICAgICAgICAkaysrOyAvLyDQmNC90LDRh9C1INC20LUg0LLRi9Cy0L7QttGDINGB0L7QvtCx0YnQtdC90LjQtSDQuCDRg9Cy0LXQu9C40YfQuNCy0LDRjiDRgdGH0LXRgtGH0LjQuiAkayDQvdCwINC10LTQuNC90LjRhtGDOwogICAgfQp9Ci8v0KPRgdC70L7QstC40LXQvCDQv9Cw0LvQuNC90LTRgNC+0LzQsCDRj9Cy0LvRj9C10YLRgdGPINGB0L7QstC/0LDQtNC10L3QuNC1INCy0YHQtdGFINGA0LDQstC90L7Rg9C00LDQu9C10L3QvdGL0YUg0YHQuNC80LLQvtC70L7QsiDRgSDQvtCx0L7QuNGFINC60L7QvdGG0L7QsiDRgdGC0YDQvtC60LgsINC10YHQu9C4INGF0L7RgtGPINCx0Ysg0YDQsNC3INGN0YLQviDRg9GB0LvQvtCy0LjQtSDQvdC1INCy0YvQv9C+0LvQvdC40YLRgdGPIC0g0YHRh9C10YLRh9C40LogJGsg0LHRg9C00LXRgiDQvtGC0LvQuNGH0LDRgtGM0YHRjyDQvtGCINC90YPQu9GPLCDQsCDRgdGC0YDQvtC60LAgLSDQvdC1INCx0YPQtNC10YIg0Y/QstC70Y/RgtGM0YHRjyDQv9Cw0LvQuNC90LTRgNC+0LzQvtC8OwppZiAoJGsgPT0gMCkgewogICAgZWNobyAiJHJlc3VsdFxuIjsKfSBlbHNlIHsKICAgIGVjaG8gIiR0ZXh0INC90LUg0Y/QstC70Y/QtdGC0YHRjyDQv9Cw0LvQuNC90LTRgNC+0LzQvtC8XG4iOwp9Ly/QnNC40LzQviDQsNC90L7QvS3QtNCw0YPQvSwg0LrQvtGC0L7RgNGL0Lkg0L3QtSDQvNC+0LbQtdGCINCyINC70L7Qs9C40LrRgyDQuCDQsNC70LPQvtGA0LjRgtC80YsuINCf0L7QutGA0LjRgtC40LrRg9C50YLQtSwg0YfRgtC+INC70LguCj8+