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

це код PHP з використанням аргументу функції, щоб перевірити рядок паліндром або не..допоможіть мені, вказуючи мені, крок за кроком .. що процес відбувається ...

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");
4
Гей, це може бути якась домашня робота? 2 різних користувача з одним і тим самим запитанням ... код "> stackoverflow.com/questions/17237021/…
додано Автор STT LCU, джерело
Гей, це може бути якась домашня робота? 2 різних користувача з одним і тим самим запитанням ... код "> stackoverflow.com/questions/17237021/…
додано Автор STT LCU, джерело

10 Відповіді

Ця функція приймає аргумент рядка як вхідний

Перше, що він робить, це перевірка рекурсивного базового випадку. Ми повернемося до цього

Якщо базовий випадок не виконується, він перевіряє, чи відповідає перший символ останньому символу, використовуючи цей код:

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

Якщо це відповідає, то функція рекурсивно викликає себе знову, але цього разу з першим і останнім символом видалено, це робиться за допомогою цього рядка

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

If ever the first character does not match the last character, the function automatically outputs to html "STRING IS NOT A PALINDROME via echo

Тепер повернемося до базового випадку, про який я згадував раніше, якщо функція успішно відповідає і видаляє перший і останній символ, доки не залишиться жодного символу, то рядок буде підтверджено паліндромом, і він відображає цей рядок.

Якщо вам потрібна допомога з рекурсією, дайте мені знати, я відправлю посилання на підручник

3
додано

Ця функція приймає аргумент рядка як вхідний

Перше, що він робить, це перевірка рекурсивного базового випадку. Ми повернемося до цього

Якщо базовий випадок не виконується, він перевіряє, чи відповідає перший символ останньому символу, використовуючи цей код:

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

Якщо це відповідає, то функція рекурсивно викликає себе знову, але цього разу з першим і останнім символом видалено, це робиться за допомогою цього рядка

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

If ever the first character does not match the last character, the function automatically outputs to html "STRING IS NOT A PALINDROME via echo

Тепер повернемося до базового випадку, про який я згадував раніше, якщо функція успішно відповідає і видаляє перший і останній символ, доки не залишиться жодного символу, то рядок буде підтверджено паліндромом, і він відображає цей рядок.

Якщо вам потрібна допомога з рекурсією, дайте мені знати, я відправлю посилання на підручник

3
додано

Він використовує рекурсію.

Програма працює таким чином. Якщо слово не має букв або має одну літеру, то це паліндром. '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
додано

Він використовує рекурсивну функцію, щоб перевірити рядок паліндрома чи ні. По-перше, це перевірка того, чи довжина рядка в 1 або 0 за допомогою функції strlen (). Якщо так, то безпосередньо повертайте "так", інакше вона перевірить першу букву, тобто. \ T Якщо це правда, то вона рекурсивно перевірятиме з підрядом, виключаючи першу літеру і останню букву, тобто.

1
додано

Він використовує рекурсивну функцію, щоб перевірити рядок паліндрома чи ні. По-перше, це перевірка того, чи довжина рядка в 1 або 0 за допомогою функції strlen (). Якщо так, то безпосередньо повертайте "так", інакше вона перевірить першу букву, тобто. \ T Якщо це правда, то вона рекурсивно перевірятиме з підрядом, виключаючи першу літеру і останню букву, тобто.

1
додано

використання

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

var_dump(Palindrome("121"));

Ваша функція перевіряє довжину, якщо її 0 або 1 має бути паліндром.

Потім вона порівнює першу букву з останньою. це вони однакові, візьміть тоді обидва від повтору.

так дзвінок 121 йде

121 не дорівнює 0 або 1 довжині

перевірка спочатку дорівнює останньому. 1 = 1

видалити обидва від'їзди 2

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

2 дорівнює 0 або 1 довжині,

return String - Паліндром.

функція ive розміщена набагато більш простий спосіб перевірити

0
додано
OP код має марну накладні витрати, непотрібну складність. Навіть існує набагато кращий спосіб написати рекурсивну функцію, щоб перевірити, чи є рядок паліндромним чи ні.
додано Автор Fallen, джерело
OP, напевно, не написав цього, він просто хоче зрозуміти код
додано Автор Stephan, джерело
true, але я вважаю, що цей підхід набагато краще, ніж складна функція з рекурсією :)
додано Автор paranoid, джерело
Так, це кращий підхід, але мова йде про рекурсію. О. П. просто хочуть знати, як працює його функція.
додано Автор Carlos, джерело
Так, для всіх. Але питання про рекурсію. Період.
додано Автор Carlos, джерело
ОП не запитує цього.
додано Автор Carlos, джерело

використання

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

var_dump(Palindrome("121"));

Ваша функція перевіряє довжину, якщо її 0 або 1 має бути паліндром.

Потім вона порівнює першу букву з останньою. це вони однакові, візьміть тоді обидва від повтору.

так дзвінок 121 йде

121 не дорівнює 0 або 1 довжині

перевірка спочатку дорівнює останньому. 1 = 1

видалити обидва від'їзди 2

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

2 дорівнює 0 або 1 довжині,

return String - Паліндром.

функція ive розміщена набагато більш простий спосіб перевірити

0
додано
OP код має марну накладні витрати, непотрібну складність. Навіть існує набагато кращий спосіб написати рекурсивну функцію, щоб перевірити, чи є рядок паліндромним чи ні.
додано Автор Fallen, джерело
OP, напевно, не написав цього, він просто хоче зрозуміти код
додано Автор Stephan, джерело
true, але я вважаю, що цей підхід набагато краще, ніж складна функція з рекурсією :)
додано Автор paranoid, джерело
Так, це кращий підхід, але мова йде про рекурсію. О. П. просто хочуть знати, як працює його функція.
додано Автор Carlos, джерело
Так, для всіх. Але питання про рекурсію. Період.
додано Автор Carlos, джерело
ОП не запитує цього.
додано Автор Carlos, джерело

використання

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

var_dump(Palindrome("121"));

Ваша функція перевіряє довжину, якщо її 0 або 1 має бути паліндром.

Потім вона порівнює першу букву з останньою. це вони однакові, візьміть тоді обидва від повтору.

так дзвінок 121 йде

121 не дорівнює 0 або 1 довжині

перевірка спочатку дорівнює останньому. 1 = 1

видалити обидва від'їзди 2

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

2 дорівнює 0 або 1 довжині,

return String - Паліндром.

функція ive розміщена набагато більш простий спосіб перевірити

0
додано
OP код має марну накладні витрати, непотрібну складність. Навіть існує набагато кращий спосіб написати рекурсивну функцію, щоб перевірити, чи є рядок паліндромним чи ні.
додано Автор Fallen, джерело
OP, напевно, не написав цього, він просто хоче зрозуміти код
додано Автор Stephan, джерело
true, але я вважаю, що цей підхід набагато краще, ніж складна функція з рекурсією :)
додано Автор paranoid, джерело
Так, це кращий підхід, але мова йде про рекурсію. О. П. просто хочуть знати, як працює його функція.
додано Автор Carlos, джерело
Так, для всіх. Але питання про рекурсію. Період.
додано Автор Carlos, джерело
ОП не запитує цього.
додано Автор Carlos, джерело

Цей алгоритм перевіряє, якщо перша і остання літера рядка рівна. Якщо це так, то алгоритм обрізає першу і останню букву рядка і викликає себе рекурсивно. І це, поки рядок не порожній (або лише одна ліва ліва) Наприклад, рядок "blaalb" Алгоритм називається з використанням Palindrome ("blaalb"). Як ви можете бачити, перша і остання літери однакові ("b"), тому ці букви обрізаються. (якщо ні, то рядок не буде palindrome і "STRING НЕ PALINDROME" буде повернуто) алгоритм тепер називає себе з Palindrome ("laal"). Знову ж таки, "l" обрізається, а потім "a" не рядок порожній, і "STRING IS PALINDROME" повертається. Майте на увазі, що, наприклад, "blaxalb" також є паліндромом, і тому алгоритм перевіряє, чи довжина рядка (strlen) дорівнює 1 або 0, щоб дізнатися, що вона закінчена

0
додано

Цей алгоритм перевіряє, якщо перша і остання літера рядка рівна. Якщо це так, то алгоритм обрізає першу і останню букву рядка і викликає себе рекурсивно. І це, поки рядок не порожній (або лише одна ліва ліва) Наприклад, рядок "blaalb" Алгоритм називається з використанням Palindrome ("blaalb"). Як ви можете бачити, перша і остання літери однакові ("b"), тому ці букви обрізаються. (якщо ні, то рядок не буде palindrome і "STRING НЕ PALINDROME" буде повернуто) алгоритм тепер називає себе з Palindrome ("laal"). Знову ж таки, "l" обрізається, а потім "a" не рядок порожній, і "STRING IS PALINDROME" повертається. Майте на увазі, що, наприклад, "blaxalb" також є паліндромом, і тому алгоритм перевіряє, чи довжина рядка (strlen) дорівнює 1 або 0, щоб дізнатися, що вона закінчена

0
додано
Ukrainian PHP comunity
Ukrainian PHP comunity
885 учасників

dev-ua/php