« Ritorna al blog

Ritorna alla lista completa degli articoli

Mettiti alla prova: verificare se una frase, parola o numero è un palindromo

PHP - SFIDE - gennaio 09, 2022

Un palindromo può essere una parola, frase o numero che può essere letto indifferentemente da sinistra a destra o viceversa, risultando sempre uguale. In questo esercizio cercheremo di utilizzare le funzioni integrate di PHP per scrivere una funzione corretta che verifichi se l'input è un palindromo o meno. Copiate e incollate il codice nel vostro editor preferito.

start.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Palindromo</title>
</head>
<body>
    <?php
        function is_palindrome($str){
            // da completare
        }

        $arr_frasi = array('Race Car', "Amore", "Roma", "454", "Ero a dirottar trattori da ore", "Hello World!", "In amor io diffido i romani");

        foreach($arr_frasi as $frase){
            $valid = is_palindrome($frase) ? "è" : "non è";
            echo "<b>" . $frase . "</b> " . $valid . " un palindromo. <br>";
        }
    ?>
</body>
</html>

Come per gli altri esercizi dovrete cercare di utilizzare le seguenti funzioni incorporate in PHP:

  • preg_replace(): esegue una ricerca e sostituzione attraverso l'utilizzo delle espressioni regolari. Per maggiori informazioni cliccare qui.
  • strtolower(): trasforma una stringa in caratteri minuscoli. Per maggiori informazioni cliccare qui.
  • str_ireplace(): versione senza distinzione tra maiuscole e minuscole di str_replace(). Per maggiori informazioni cliccare qui.
  • strrev(): inverte una stringa. per maggiori informazioni cliccare qui.

Per creare una funzione affidabile dobbiamo ricordarci di rimuovere la punteggiatura, eliminare gli spazi, rendere minuscola la stringa e invertirla per il confronto.

L'output dovrà essere simile al seguente:

Race Car è un palindromo.
Amore non è un palindromo.
Roma non è un palindromo.
454 è un palindromo.
Ero a dirottar trattori da ore è un palindromo.
Hello World! non è un palindromo.
In amor, io diffido i romani è un palindromo.

finish.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Palindromo</title>
</head>
<body>
    <?php
        function is_palindrome($str){
            $str = preg_replace('/[[:punct:]]/','',$str);
            $str = strtolower(str_ireplace(' ','', $str));
            return $str == strrev($str);
        }

        $arr_frasi = array('Race Car', "Amore", "Roma", "454", "Ero a dirottar trattori da ore", "Hello World!", "In amor io diffido i romani");

        foreach($arr_frasi as $frase){
            $valid = is_palindrome($frase) ? "è" : "non è";
            echo "<b>" . $frase . "</b> " . $valid . " un palindromo. <br>";
        }
    ?>
</body>
</html>
Mettiti alla prova: verificare se una frase, parola o numero è un palindromo