編寫一段用最小代價(jià)實(shí)現(xiàn)將字符串完全反序, 如 將 “abcdefghjk” 轉(zhuǎn)換成 “kjhgfedcba”. 不使用內(nèi)置函數(shù)
方法一:利用字符串的拼接方法,把后遍歷出來的放在前面即可實(shí)現(xiàn)反轉(zhuǎn)
function reverse()
{
$s = 'abcdefghjk';
$o = '';
$i = 0;
while(isset($s[$i]) && $s[$i] != null) {
$o = $s[$i++].$o;
}
echo $o;//kjhgfedcba
}
方法二:把字符串打散成數(shù)組鹅颊,
function reverse()
{
$s = 'abcdefghjk';
$strArr = str_split($s);
$o = '';
for($i=count($strArr) - 1; $i>=0;$i--){
$o.=$strArr[$i];
}
echo $o;
}
方法三:利用遞歸的方法,類似與二分查找的折半思想
function reverseRecursive()
{
$s = 'abcdefghjk';
$forNum = ceil(strlen($s)/2);
$strlen = strlen($s);
for($i=1; $i<= $forNum; $i++){
if($i <= $strlen-$i) {
$tmp = $s[$i - 1];
$s[$i - 1] = $s[$strlen - $i];
$s[$strlen - $i] = $tmp;
}
}
return $s;
}