如何在不使用任何额外内存变量的情况下将 $str= "hello\n" 反转为 "olleh\n" ?
我查找了预建函数,但它们都使用内存,而且,我认为字符串是不可变的,所以基本上这可以在没有任何调整的情况下完成,或者创建一个新字符串是唯一的选择吗?
如何在不使用任何额外内存变量的情况下将 $str= "hello\n" 反转为 "olleh\n" ?
我查找了预建函数,但它们都使用内存,而且,我认为字符串是不可变的,所以基本上这可以在没有任何调整的情况下完成,或者创建一个新字符串是唯一的选择吗?
我认为 PHP 中没有什么是不可变的。
所以
$str = strrev($str);
可能会有一些用处。
害怕微优化,因为它会花费你所有的时间,没有真正的结果!:)
我可能忽略了一些东西,但如果你所有的行都以\n
我认为这可能是最短的方法:
$str = strrev( trim( $str ) ) . "\n";
不过,我不确定涉及多少内存。
你在这里说多少“额外记忆”?PHP 有一个简洁的函数来为你翻转字符串:strrev()
只需使用
$str = strrev($string);
如果你真的想要,你可以编写一个循环来做几乎相同的事情,但这会占用内存。
<?php
$string = trim("Some Random string");
// string length
$len = strlen($string);
// make string array
$stringExp = str_split($string);
// Loop through and print backwards
for ($i = $len - 1; $i >= 0; $i--) {
echo $stringExp[$i];
}
?>