【编程-算法】2019-09-30 递归翻转输出字符数组

0 先上代码

语言:php;目标:递归翻转输出字符数组

class Solution {
    /**
     * @param String[] $s
     * @return NULL
     */
    function reverseString(&$s) {
        $length=5;
        if(count($s)>1){
            $this->reverseString(array_slice($s,1));
        }
        if(count($s)==1){
            echo "[";
        }
        echo '"'.$s[0].'"';
        if(count($s)==$length){
            echo "]";
        }
        else{
            echo ",";
        }
        return;
    }
}

在具体解释这个代码前,要有以下几点关于PHP的知识点,要提前说明

1 array_slice()

实例

<?php
$a=array("red","green","blue","yellow","brown");
print_r(array_slice($a,2));
?>

array_slice(array,start,length,preserve)

参数描述
array必需。规定数组。
start必需。数值。规定取出元素的开始位置。 0 = 第一个元素。如果该值设置为正数,则从前往后开始取。如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。
length可选。数值。规定被返回数组的长度。如果该值设置为整数,则返回该数量的元素。如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。
preserve可选。规定函数是保留键名还是重置键名。可能的值:true - 保留键名; false - 默认。重置键名

2 PHP类的方法是有作用域的

我们这个代码是在leetcode中写的,leetcode给的模板就是一个含类的模板,可能方便他们实现网页吧。
在php类中定义的函数,如果想要实现递归调用,需要强调本作用域$this

3 函数count()

用来计算数组的内容个数

4 算法思想

通过检测是否为最后一个字符,决定是否要输出。
当输出完最后一个字符后,递归回传,每次都输出当前段的第0个元素,以此类推,实现字符串的翻转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值