это 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");
Эта функция принимает строковый аргумент как входной
Первое, что он делает, это проверка рекурсивного базового случая. Мы вернемся к этому
Если базовый случай не выполняется, он затем проверяет, соответствует ли первый символ последнему символу с помощью этого кода:
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
Если вы запрашиваете phpcodephp
Он использует рекурсивную функцию, чтобы проверить, что строка является палиндром или нет. Во-первых, это проверка длины строки в 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, опубликованная, намного проще проверять