Intereting Posts

проверка состояния палиндрома с использованием аргументов функции

это php-код с использованием аргумента функции для проверки строки – это палиндром или нет. Помогите мне сказать мне шаг за шагом. Как происходит процесс … iam не может понять

function Palindrome($string) { if ((strlen($string) == 1) || (strlen($string) == 0)) { echo " STRING IS PALINDROME"; } else { if (substr($string,0,1) == substr($string,(strlen($string) - 1),1)) { return Palindrome(substr($string,1,strlen($string) -2)); } else { echo " STRING IS NOT A PALINDROME"; } } } Palindrome("121"); 

Solutions Collecting From Web of "проверка состояния палиндрома с использованием аргументов функции"

Эта функция принимает строковый аргумент как входной

Первое, что он делает, это проверка рекурсивного базового случая. Мы вернемся к этому

Если базовый случай не выполняется, он затем проверяет, соответствует ли первый символ последнему символу с помощью этого кода:

 if (substr($string,0,1) == substr($string,(strlen($string) - 1),1)) 

Если это соответствует, то функция рекурсивно вызывает себя снова, но на этот раз с удалением первого и последнего символов это делается с помощью этой строки

 return Palindrome(substr($string,1,strlen($string) -2)); 

Если когда-либо первый символ не соответствует последнему символу, функция автоматически выводит на html «STRING IS NOT A PALINDROME через echo

Теперь вернемся к базовому случаю, о котором я упомянул ранее, если функция успешно соответствует и удаляет первый и последний символы, пока не останется один или не осталось символов, тогда строка была подтверждена как палиндром, и эта эхо указывает на эту строку.

Если вам нужна помощь в рекурсии, дайте мне знать, я отправлю ссылку для учебника

Он использует рекурсию.

Программа работает именно так. Если слово не имеет букв или имеет одну букву, это палиндром. «a» – это палиндром, и так далее »

Таким образом, ваша программа проверит, совпадает ли первая буква с последней буквой в данном слове. Если это не его палиндром Если это произойдет, оно удалит последнюю букву, первую букву и последнюю букву и снова проверит

Итак, когда вы говорите 121 1. Он будет проверять 1 и 1, которые совпадают. Таким образом, он будет вызывать ту же функцию с 2 2. Затем он удалит 1 и 1 3. Он проверит 2 4. Так как 2 – один символ, это палиндром

Если вы попросите abba

  1. Он будет проверять a и a, которые соответствуют. Таким образом, он будет вызывать ту же функцию с bb
  2. Он будет проверять на b и b

Если вы запрашиваете phpcodephp

  1. Он будет соответствовать p и p. Таким образом, он будет вызывать ту же функцию с hpcodeph
  2. Он будет соответствовать h и h. Таким образом, он будет вызывать ту же функцию с pcodep
  3. он будет соответствовать p и p. Таким образом, он будет вызывать ту же функцию с кодом
  4. Он будет соответствовать c и e, которые не совпадают. Так что это не палиндром

Он использует рекурсивную функцию, чтобы проверить, что строка является палиндром или нет. Во-первых, это проверка длины строки в 1 или 0 с помощью функции strlen (). Если да, то прямо верните «да», иначе он проверит первую букву, т.е. substr ($ string, 0,1) с последней буквой, т.е. substr ($ string, (strlen ($ string) – 1), 1). Если это правда, то он будет рекурсивно проверять подстроку, исключая первую букву и последнюю букву, т.е. Palindrome (substr ($ string, 1, strlen ($ string) -2)) ;.

Этот алгоритм проверяет, равна ли первая и последняя буква строки. Если это так, алгоритм обрабатывает первую и последнюю букву строки и называет себя рекурсивным. И это, пока строка не будет пустой (или останется только одна буква) Например строка «blaalb» Алгоритм вызывается с использованием Palindrome («blaalb»). Как вы можете видеть, первая и последняя буква одинаковы («b»), поэтому эти буквы обрезаны. (если нет, строка не будет палиндром и «STRING IS NOT A PALINDROME» будет возвращена), теперь алгоритм теперь называет себя Palindrome («laal»). Опять же, «l» обрезается, а затем «a», а не строка пуста, и возвращается «STRING IS PALINDROME». Имейте в виду, что, например, «blaxalb» также является палиндром, и поэтому алгоритм проверяет, является ли длина строки (strlen) равной 1 или 0, чтобы знать, что она закончена

использование

 function Palindrome($string) { return strrev($string) === $string; } var_dump(Palindrome("121")); 

ваша функция проверяет длину, если ее 0 или 1 она должна быть палиндром.

Затем он сравнивает первое письмо с последним. это они одни и те же, Возьмите оба повтора.

поэтому звонок 121 идет

121 не равно 0 или 1 char длинным,

check сначала равно последнему. 1 = 1

удалите оба 1, оставив 2

перезапустите с аргументом 2.

2 равно 0 или 1 char длинным,

return String – палиндром.

функция ive, опубликованная, намного проще проверять