美文网首页
Backtracking——93. 复原IP地址

Backtracking——93. 复原IP地址

作者: 含泪若笑 | 来源:发表于2020-09-20 12:56 被阅读0次

    重点讲一下递归方法,因为是ip,所以一共有四组,所以递归结束的条件就看是不是进行了4次,能加入结果集的条件就是,为4组之后,ip的string长度为0 ,即都用了。

    如果没有到达长度4的话,我们要做的就是用一个循环,长度小于ip的字符串,且控制i小于等于2,因为ip最大只能是3位,我们首先判断在长度大于1的情况下,第一个是不是为0(i != 0 && s.charAt(0) == '0'),如果是则break;然后我们取出子串s.substring(0, i + 1),首先我们判断这个值是不是小于255——Integer.valueOf(cur) <= 255,小于则可以加入,加入之前我们需要先看看存结果的长度是不是大于0,大于0,要把这个子串加了点再append进去。

    继续递归调用,这里我们把ip 字符串截取一下,把判断过的去掉。

    递归之后,我们恢复,用delete——str.delete(str.length() - cur.length(), str.length());

    学习的点:

    1 substring而不是subString;

    2 str.delete(int  a,int  b)有两个参数,使用时删除索引从a开始(包含a)到b(不包含b)的所有字符.

    代码:

    https://github.com/hanleirx/LeetCode/blob/master/93.%20%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80

    相关文章

      网友评论

          本文标题:Backtracking——93. 复原IP地址

          本文链接:https://www.haomeiwen.com/subject/leneyktx.html