<div class="section">
来週の新卒研修コードレビューのテーマらしい。
ぱっと思いついた方法だけ載せてとく。
<?php //strrevは使わない $str = 'Hello. Nice to meet you.'; echo str_reverse($str); echo str_reverse2($str); function str_reverse($str) { $_str = ''; for ($i = 1;$i <= strlen($str);$i++) $_str .= substr($str, $i * -1, 1); return $_str; } function str_reverse2($str) { $_str = ''; for ($i = strlen($str) - 1;$i >= 0;$i--) $_str .= $str[$i]; echo $_str; }
swapでやる方法。
<?php $str = 'Hello. Nice to meet you.'; echo str_reverse3($str); function str_reverse3($str) { $forword = 0; $backword = strlen($str) - 1; while ($forword < $backword) { list($str[$forword], $str[$backword]) = array($str[$backword], $str[$forword]); $forword++; $backword--; } return $str; }
for, foreach, while などのループをつかわない
<?php $str = 'Hello. Nice to meet you.'; echo str_reverse4($str); function str_reverse4($str, $re_str = '') { if (strlen($str) === 0) return $re_str; $rest_str = substr($str, 0, -1); $re_str .= substr($str, -1); return str_reverse4($rest_str, $re_str); }