<?php
header("Content-type:text/html;charset=utf-8");
/**
* 处理最小周期内的字符串
* @author syh
* @param array $arr 最小处理数组
* @param int $t_num 每个周期内字符串个数
* @return array
*/
function fun($arr,$t_num)
{
// 如果不够最小周期补空串
if (count($arr)<$t_num)
{
$arr_new=array_fill(0,$t_num-count($arr), '');
$arr=array_merge($arr,$arr_new);
}
$i=0;
$list[$i]=array_shift($arr);
while (count($arr)>0)
{
$i++;
// 合并最小周期内同行内的字符串
$list[$i]=array_shift($arr).array_pop($arr);
}
return $list;
}
/**
* 主程序
* @author syh
* @param string $str 字符串
* @param string $rows 行数
* @return array
*/
function main($str,$rows)
{
$num=2*$rows-2;//每个周期里的字符个数
$arr=array_chunk(str_split($str),$num);//分割数组
for ($i=0; $i <=$rows; $i++)
{
foreach ($arr as $key => $value)
{
$list=fun($value,$num);
@$list_new[$i].=$list[$i];
}
}
return implode(' ',$list_new);
}
$str='abcdefghijklmnopqrstuvwxyz';
$str_new=main($str,4); //4行
var_dump($str_new);
?>
z型字符串转换(算法)
最新推荐文章于 2024-04-04 17:22:43 发布