Z字变换:

php:
44ms,字符串操作完成,主要公式:n + (k - i*2) 和 n + i*2
class Solution {
/**
* @param String $s
* @param Integer $numRows
* @return String
*/
function convert($s, $numRows) {
$res = '';
$curr = '';
$k = ($numRows - 1)*2;
if($numRows == 1) return $s;
for($i = 0;$i < $numRows;$i++){
$n = $i;
for($j = 0;$j < strlen($s);$j++){
if($j == 0){
$res .= $s[$n];
}
if(($j % 2 == 0) && ($j != 0)){
if($n == $n+2*$i){
continue;
}
$n = $n+2*$i;
if($n > strlen($s)-1){
break;
}
$res .= $s[$n];
}
if($j % 2 != 0){
if($n == $n + ($k - $i*2)){
continue;
}
$n = $n + ($k - $i*2);
if($n > strlen($s)-1){
break;
}
$res .= $s[$n];
}
}
}
return $res;
}
}
本文深入探讨了Z字变换算法的实现细节,通过PHP代码展示了如何将字符串转换为Z字形排列并重新读取,关键在于理解n+(k-i*2)和n+i*2的计算逻辑。
342

被折叠的 条评论
为什么被折叠?



