0

Pythonコードは次のとおりです。

def is_palindrome(s):
    return revers(s) == s

def revers(s):
    ret = ''
    for ch in s:
        ret = ch + ret
    return ret

print is_palindrome('RACECAR') 
# that will print true

その関数をphpに変換するとき。

function is_palindrome($string){
    if (strrev($string) == $string) return true;
    return false;
}
$word = "RACECAR";
var_dump(is_palindrome($word));
// true 

どちらの関数も正常に機能しますが、ループ内のphpで文字列を元に戻すにはどうすればよいですか?

$string = str_split(hello);
$output = '';
foreach($string as $c){
        $output .= $c;
}
print $output;
// output 
hello 
//i did this,

それは仕事の発見ですが、より良い方法でそれを行う方法はありますか?$ string = "hello"; $ lent = strlen($ string);

$ret = '';
for($i = $lent; ($i > 0) or ($i == 0); $i--)
{
    $ret .= $string[$i];
    #$lent = $lent - 1;
}

print $output;
//output 
olleh
4

4 に答える 4

2

交換

$output .= $c;

$output = $c . $output;
于 2013-03-25T10:14:41.743 に答える
1

短くすることはできないと思います。ループ付き:)

$word = "Hello";

$result = '';
foreach($word as $letter)
    $result = $letter . $result;

echo $result;
于 2013-03-25T10:31:37.653 に答える
0

私はそのコードを試しませんが、うまくいくはずだと思います:

$string = "hello";
$output = "";
$arr = array_reverse(str_split($string)); // Transform "" to [] and then reverse => ["o","l","l,"e","h"]
foreach($arr as $char) {
    $output .= $char;
}

echo $output;

別の方法:

$string = "hello";
$output = "";
for($i = strlen($string); $i >= 0; $i--) {
    $output .= substr($string, $i, 1);
}
echo $output;
于 2013-03-25T10:25:51.720 に答える
-1

strrev()は、PHPで文字列を逆にする関数です。 http://php.net/manual/en/function.strrev.php

$s = "foobar";
echo strrev($s); //raboof

単語が回文であるかどうかを確認する場合:

function is_palindrome($word){ return strrev($word) == $word }

$s = "RACECAR";
echo $s." is ".((is_palindrome($s))?"":"NOT ")."a palindrome";
于 2013-03-25T10:13:33.163 に答える