« 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, 2022Un 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>