2015-11-26 1 views
0

Trois étapes pour trouver le palindrome?Programme Php pour trouver Palindrome?

  1. utilisation strrev sur la valeur donnée

  2. ensuite divisé en utilisant la str_split. Ensuite, utilisez foreach et concate la valeur de partage.

Exemple

$a = "madam"; 

$b = strrev($a); 

    $string_reverse = str_split($b); 

    $palin = ''; 

    foreach($string_reverse as $value){ 

     $palin.= $value; 
    } 

    print $palin; 

    if($a == $palin){ 

     print "<br>Palindrome"; 

    } else { 

     print "<br>Not Palindrome"; 

    } 

Sortie

Madame
Palindrome

+4

Oui inverser et comparer l'égalité est un moyen. Quelle est la question? – Emz

+1

Il n'y a en effet pas de question ici, mais vous pouvez raccourcir tout ceci à: 'function is_palindrome ($ a) {return $ a === strrev ($ ab); } ' – Evert

Répondre

3

essayez ceci:

<?php 
function check_plaindrome($string) { 
    //remove all spaces 
    $string = str_replace(' ', '', $string); 

    //remove special characters 
    $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); 

    //change case to lower 
    $string = strtolower($string); 

    //reverse the string 
    $reverse = strrev($string); 

    if ($string == $reverse) { 
     echo "<p>It is Palindrome</p>"; 
    } 
    else { 
     echo "</p>Not Palindrome</p>"; 
    } 
} 

$string = "A man, a plan, a canal, Panama"; 
check_plaindrome($string); 


########Output####### 
<p>It is Palindrome</p> 
0
<?php 
$word = "level"; // declare a varibale 
echo "String: " . $word . "<br>"; 
$reverse = strrev($word); // reverse the word 
if ($word == $reverse) // compare if the original word is same as the reverse of the same word 
echo 'Output: This string is a palindrome'; 
else 
echo 'Output: This is not a palindrome'; 
?> 
1

Il y a un moyen simple qui nous pouvons écrire comme cela ne fait pas compliquer:

$a = "1681"; 

$b = strrev($a); 

print $b; 

if($a == $b){ 

    print "<br>Plaindrome"; 

} else { 

    print "<br>Not Plaindrome"; 

} 
0

Pour vérifier une chaîne si elle est palindrome ou non sans fonction PHP.

<?php 

    $str = 'level'; 
    $strLen = strlen($str)-1; 
    $revStr = ''; 
    for($i=$strLen; $i>=0; $i--){ 
     $revStr.=$str[$i]; 
    } 
    if($revStr == $str) 
     echo 'Palindrome'; 
    else 
     echo "Not Palindrome"; 

?> 
0
function checkpala(string $input){ 

    for($i=0; $i < strlen($input); $i++){ //for each char in the string 
     if (substr($input,$i,1) != substr($input, strlen($input)-($i+1),1)){ //get the first char and the last char and compare them. Then get the 2nd and the 2nd from the end and compare them. repeate 

      //if at any point there is no match, stop checking, return false 
      //echo "$input is not a palindrome"; 
      return false; 
     } 
    } 
    //if the loop completes and every character checked out, return true. 
    //echo "$input is a palindrome"; 
    return true; 
}  
1

Vous pouvez essayer cela, il renverse la chaîne ou de la valeur ...

function fn_palindrome($palindrome) { 
    $reversed = ''; 
    $original = $palindrome; 
    $string = array(); $j = 0; 
    $converted = (string) $palindrome; 
    $palindrome = str_split($converted); 
    $i = count($palindrome) - 1; 
    while($i >= 0) { 
     $string[$j] = $palindrome[$i]; 
     $j++; $i--; 
    } 
    $reversed = implode('', $string); 
    if($reversed == $original) { 
     return TRUE; 
    } else { 
     return FALSE; 
    } 
} 
-1

factice chaîne à tester

$s = 'abcdefg'; 

Inverser l'ordre de chaîne

$t = strrev($s); 

obtenir la longueur de la chaîne

$length = mb_strlen($s); 

variable à utiliser pour la chaîne concating en traversant en utilisant pour la boucle

$new = ''; 

boucle à cordes traversent

for ($i = 0; $i < $length; $i++) { 
    $new = $s[$i].$new;  
} 

chaîne Vérifier traversèrent en utilisant pour boucle est égale à la chaîne inversée en utilisant la fonction PHP

if ($t == $new){ 
    echo "Yes palindrome"; 
} else { 
    echo "No palindrome"; 
} 

Si la sortie est oui alors c'est palindrome sinon ce n'est pas une chaîne palindrome.

+1

Veuillez fournir une explication à votre réponse. Les réponses au code seulement ne sont pas très utiles et souvent mal vues. – jpcgt

+0

Alors que les réponses sont toujours appréciées, il est utile de fournir des informations supplémentaires concernant ** comment ** votre code résout le problème. Cela aide ceux qui ont des problèmes similaires (mais pas identiques). Tout le monde n'est peut-être pas familier avec votre logique de codage exacte, mais peut comprendre votre approche générale * ou * concept *. Pour aider à améliorer votre réponse, veuillez fournir [** contexte entourant **] (https://meta.stackexchange.com/questions/114762), et voir l'article d'aide sur [** écrire de bonnes réponses **] (http://stackoverflow.com/help/how-to-answer) pour obtenir des conseils sur la manière de compter vos réponses :) –

+0

J'ai utilisé ce code et il est écrit que 'abcdefg' est un palindrome, ce qui n'est clairement pas le cas. – Brogan

0
function checkPalindrome($string) { 
    return $string == strrev($string); 
}