fork download
  1. <?php
  2. $text = "А это не палиндром";
  3. $result='палиндром';
  4.  
  5. $text=mb_strtolower($text);
  6. $text= str_replace(' ', '', $text);//ПОНЯТИЯ НЕ ИМЕЮ КАК ЭТО РАБОТАЕТ, НО ГЛАВНОЕ ЧТО РАБОТАЕТ
  7.  
  8. echo $text;
  9.  
  10. $length=mb_strlen($text);
  11. $halfLength=$length; // НЕ ПОНЯЛ ЗАЧЕМ ТУТ НУЖНА БЫЛА ПОЛОВИНА, ПОЭТОМУ СДЕЛАЛ ТАК
  12.  
  13. $letters = preg_split('//u', $text, null, PREG_SPLIT_NO_EMPTY);//КАК Я ПОНИМАЮ ЭТА ПОЕБЕНЬ СОЗДАЕТ ПУСТЫЕ ЭЛЕМЕНТЫ
  14. $bufhalf=$halfLength;
  15. echo "\n";
  16. for($i=0;$i<=$halfLength;$i++){
  17. $bufhalf=$halfLength-$i-1;//-1 ЭТО УДАЛЕНИЕ ПУСТОГО ЭЛЕМЕНТА, А НА ПОСЛЕДНИЙ ПЛЕВАТЬ
  18. if( $letters[$i]==$letters[$bufhalf]){
  19. echo "YEP! letters=$letters[$i] letters buf=$letters[$bufhalf] \n";
  20. }else echo " NO! letters=$letters[$i] letters buf=$letters[$bufhalf] \n";
  21. }
  22. echo "\n";
  23. echo "Результат: {$result}\n";
Success #stdin #stdout #stderr 0.03s 24792KB
stdin
Standard input is empty
stdout
аэтонепалиндром
 NO! letters=а letters buf=м 
 NO! letters=э letters buf=о 
 NO! letters=т letters buf=р 
 NO! letters=о letters buf=д 
YEP! letters=н letters buf=н 
 NO! letters=е letters buf=и 
 NO! letters=п letters buf=л 
YEP! letters=а letters buf=а 
 NO! letters=л letters buf=п 
 NO! letters=и letters buf=е 
YEP! letters=н letters buf=н 
 NO! letters=д letters buf=о 
 NO! letters=р letters buf=т 
 NO! letters=о letters buf=э 
 NO! letters=м letters buf=а 
YEP! letters= letters buf= 

Результат: палиндром
stderr
PHP Notice:  Undefined offset: 15 in /home/3hUctI/prog.php on line 20
PHP Notice:  Undefined offset: -1 in /home/3hUctI/prog.php on line 20
PHP Notice:  Undefined offset: 15 in /home/3hUctI/prog.php on line 21
PHP Notice:  Undefined offset: -1 in /home/3hUctI/prog.php on line 21