LeetCode-93. Restore IP Addresses
来源:互联网 发布:剑三冷艳花姐捏脸数据 编辑:程序博客网 时间:2024/06/06 06:33
题目描述
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given “25525511135”,
return [“255.255.11.135”, “255.255.111.35”]. (Order does not matter)
解题思路
- 采用递归的方式解题,每一次递归调用,分别判断当前字符,当前字符与下一个位置的字符,当前字符与后两个字符(循环调用)是否满足小于等于255的条件。如果当前字符为0,则只循环一次便跳出循环,因为ip地址中不允许有02这种形式,但允许有0这种形式。
代码
class Solution { List<String> result = new LinkedList<String>(); public List<String> restoreIpAddresses(String s) { if(s == null || s.length() <=3 || s.length()>12){ return result; } for(int i=1;i<=3;i++){ int tmp = Integer.valueOf(s.substring(0,0+i)); if(tmp<=255){ restoreCore(s,i,""+tmp,1); } if(s.charAt(0)=='0')//当前字符为0,跳出循环 break; } return result; } private void restoreCore(String s,int position,String tmp,int count){//count代表递归调用的次数 if(count==4 && position>s.length()-1){ result.add(tmp); return; } if(count>4) return; for(int i=1;i<=3 && i+position-1<s.length();i++){ if((4-count)*3<s.length()-position || (4-count)*1>s.length()-position) return; int intTmp = Integer.valueOf(s.substring(position,position+i)); if(intTmp<=255){ restoreCore(s,position+i,tmp+"."+intTmp,count+1); } if(s.charAt(position)=='0')//当前字符为0,跳出循环 break; } }}
阅读全文
0 0
- LeetCode 93. Restore IP Addresses
- [Leetcode] 93. Restore IP Addresses
- LeetCode --- 93. Restore IP Addresses
- [LeetCode]93.Restore IP Addresses
- Leetcode 93.Restore IP Addresses
- [leetcode] 93.Restore IP Addresses
- [leetcode] 93.Restore IP Addresses
- 93. Restore IP Addresses LeetCode
- leetcode 93. Restore IP Addresses
- Leetcode 93. Restore IP Addresses
- LeetCode 93. Restore IP Addresses
- LeetCode *** 93. Restore IP Addresses
- leetcode 93. Restore IP Addresses
- LeetCode-93.Restore IP Addresses
- LeetCode 93. Restore IP Addresses
- leetcode-93. Restore IP Addresses
- leetcode.93. Restore IP Addresses
- [leetcode]93. Restore IP Addresses
- 获取一个数二进制序列中所有的偶数位和奇数位,并输出。
- HTTP 请求和响应格式
- ...的小例子
- 顺序表应用3:元素位置互换之移位算法
- 大话设计模式之备忘录模式
- LeetCode-93. Restore IP Addresses
- 多字节、宽字节、兼容字节(TEXT) 相关操作汇总
- mybatis学习之路----动态sql之trim标签源码详解,附带where标签解析
- Docker中使用CentOS7镜像
- bean的最后一次
- pubsub-js 实现RN组件间通信
- 使用swagger2生成RESTful客户端
- 我的python学习笔记.用户输入.函数input()的工作原理
- 简单协程