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 = "你好"; $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 回答