Leetcode-93. Restore IP Addresses
来源:互联网 发布:乐高淘宝散件怎么来的 编辑:程序博客网 时间:2024/06/05 08:59
前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。
博客链接:mcf171的博客
——————————————————————————————
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)
public class Solution { public List<String> restoreIpAddresses(String s) { List<String> results = new ArrayList<String>(); if(s.length() < 4) return results; generateSubString(results,s,"",0,4); return results; } public void generateSubString(List<String>results,String s,String preString, int k,int remains){ if(s.length() < remains) return ; if(k > s.length() -1) return; if(k + remains * 3 < s.length()) return; if(remains == 1){ if(k<s.length() - 1) if(s.charAt(k) == '0') return; int value = Integer.parseInt(s.substring(k)); StringBuffer sb = new StringBuffer(preString); if(value <= 255){sb.append(value);results.add(sb.toString());} }else{ if( k + remains<=s.length()){ int value = Integer.parseInt(s.substring(k,k + 1)); if(value <= 255){StringBuffer sb = new StringBuffer(preString); sb.append(value + ".");generateSubString(results,s,sb.toString(),k+1,remains-1);} } if(s.charAt(k) == '0') return; if(k + 1 + remains <= s.length()){ int value = Integer.parseInt(s.substring(k,k+2)); if(value <= 255){StringBuffer sb = new StringBuffer(preString); sb.append(value + ".");generateSubString(results,s,sb.toString(),k+2,remains-1);} } if(k + 2 + remains <= s.length()){ int value = Integer.parseInt(s.substring(k,k+3)); if(value <= 255){StringBuffer sb = new StringBuffer(preString); sb.append(value + ".");generateSubString(results,s,sb.toString(),k+3,remains-1);} } } }}
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
- 观察者模式
- android基础巩固:android 安卓中match、fill、wrap的区别
- windows下SVN服务器与web 站点的同步
- python 安装 与pip
- Swift3.0 功能一(持续更新)
- Leetcode-93. Restore IP Addresses
- 动态链接库(DLL)总结
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) D. Dense Subsequence ST表+贪心
- 图文并茂,再次温顾七大排序算法
- HDU 3336 Count the string 【KMP】【dp】
- swift switch选择结构
- javascript中的 事件的绑定1
- Android之二维码生成与识别
- 文章标题