2017-02-21 4 views
0

문자열 'S'가있는 프로그램은이 문자열이 회문인지 여부를 찾고 인쇄합니다.palindrome words program in php

<?php 
$str = "Civic"; 

$count = ((strlen($str)+1) /2); 
$q = "y"; 
for($i = 0; $i < $count; $i++) 
{ 
    $x = 1; 
    $z = $str[(strlen($str-$x))]; 
    $x = $x+1; 
    if($str[$i] == $z) { 
     $x = $x++; 
     $q = "y"; 
    } else { 
     $q = "n"; 
    } 
} 
if($q == "n") { 
    echo "No"; 
} else { 
    echo "Yes"; 
} 
?> 

나에게주십시오 몇 가지 제안에 대해 - : 예, 인쇄 "YES", 다른 인쇄 "NO"는 시민처럼 작동하고 어떤 것이 코드가 작동하지 않는 일부 회문 단어에 대한

하는 경우 내 코드, 감사

+0

여기에 하나 개의 제안입니다 ... 당신이 필요로 정확히 : 미친 들여 쓰기를 고정합니다. : p – Bytewave

+0

* "어떤 단어는 작동하지 않습니다"* - 어떤 단어가 해당합니까? –

+0

단순한 두 줄짜리 (ASCII로 가정) –

답변

4

어떻게 다른 접근 방식에 대해 :

if($str == strrev($str)) { 
    echo "Yes"; 
} else { 
    echo "No"; 
} 

이하 :

echo ($str == strrev($str)) ? "Yes" : "No"; 

대소 문자가 문제 일 수 있습니까?

echo (strtolower($str) == strrev(strtolower($str))) ? "Yes" : "No"; 
+0

Brilliant! 브라보! (가장 좋은 해결책은 가장 간단한 경우가 많습니다.) – alanlittle

+0

그 주위에 토끼 구멍이 없기를 바랍니다. (질문) –

+1

[내가 너에게 좋은 말을 넣었다는 것을 알고있다.] (http : // stackoverflow.com/questions/42378656/palindrome-words-program-in-php#comment71906780_42378656) ;-) –

-3

여기

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; 
    } 
}