leetcode 93 Restore IP Addresses ----- java
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)
将给定字符串变为合法的IP地址(所有情况)。
需要注意的是:
1、如果0作为开头,那么只能是0。
2、不能超过255。
3、注意不要越界。
尽量运用数组,速度达到最快1ms。
public class Solution {
List result = new ArrayList<String>();
char[] IP ;
public List<String> restoreIpAddresses(String s) {
int len = s.length();
if( len < 4 || len > 12)
return result;
IP = s.toCharArray();
getReult(0,0,new char[len+3]);
return result;
}
public void getReult(int num,int pos,char[] ans){
if( num != 3){
if ( pos-num < ans.length-3 && IP[pos-num] == '0'){
ans[pos] = '0';
ans[pos+1] = '.';
getReult(num+1,pos+2,ans);
return ;
}
for( int i = pos ; i < pos+2 && i<ans.length-3+num;i++){
ans[i] = IP[i-num];
ans[i+1] = '.';
getReult(num+1,i+2,ans);
}
if( ans.length-3+num-pos >= 3){
int tt = (IP[pos-num]-'0')*100+(IP[pos-num+1]-'0')*10+(IP[pos-num+1]-'0');
if( tt <= 255 ){
ans[pos+2] = IP[pos+2-num];
ans[pos+3] = '.';
getReult(num+1,pos+4,ans);
}
}
}else{
int len = ans.length-pos;
if( len < 1 || len > 3)
return ;
if ( IP[pos-num] == '0' && len != 1)
return ;
else{
if( len == 3 ){
int tt = (IP[pos-num]-'0')*100+(IP[pos-num+1]-'0')*10+(IP[pos-num+2]-'0');
if( tt > 255 )
return ;
}
for( int i = pos; i<ans.length;i++){
ans[i] = IP[i-3];
}
result.add( new String ( String.valueOf(ans)));
}
}
}
}
leetcode 93 Restore IP Addresses ----- java的更多相关文章
- leetcode 93. Restore IP Addresses(DFS, 模拟)
题目链接 leetcode 93. Restore IP Addresses 题意 给定一段序列,判断可能组成ip数的所有可能集合 思路 可以采用模拟或者DFS的想法,把总的ip数分成四段,每段判断是 ...
- [LeetCode] 93. Restore IP Addresses 复原IP地址
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
- LeetCode : 93. Restore IP Addresses
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABZ4AAAHUCAYAAAC6Zj2HAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVlw
- 93.Restore IP Addresses(M)
93.Restore IP Addresses Medium 617237FavoriteShare Given a string containing only digits, restore it ...
- 【LeetCode】93. Restore IP Addresses
Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...
- 93. Restore IP Addresses
题目: Given a string containing only digits, restore it by returning all possible valid IP address com ...
- 【leetcode】Restore IP Addresses
Restore IP Addresses Given a string containing only digits, restore it by returning all possible val ...
- 【一天一道LeetCode】#93. Restore IP Addresses
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- Java for LeetCode 093 Restore IP Addresses
Given a string containing only digits, restore it by returning all possible valid IP address combina ...
随机推荐
- 结构化视角看django
分析一个软件的整体框架,我认为应该从静态和动态两方面入手.静态方面,看它有哪些用例,即有哪些功能模块:动态方面,看主流程如何连接上这些模块 静态方面:分View.Model.Template.Sess ...
- matlab和C/C++混合编程--Mex (六)参数传递
最近的项目需要matlab和C的混合编程,经过一番努力终于完成了项目要解决的问题.现在就将Mex的一些经验总结一下,当然只是刚刚开始,以后随着学习的深入继续添加.首先讲讲写Mex的一些常规规定,然后我 ...
- shell变量的使用
转载请标明http://www.cnblogs.com/winifred-tang94/ shell环境中变量有三种类型: a. 环境变量:可以在shell脚本中直接利用“$环境变量名称”的形式引用 ...
- centos下安装node js
#wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz #tar xf node-v0.10.24.tar.gz #cd node-v0. ...
- IOS 中的KVO模式 观察者模式
/ // KvoObject.h // KVO // // Created by lin kang on 16/6/7. // Copyright © 2016年 lin kang. All righ ...
- 将Ajax 中数组转换成字符串 封装成类
<?php class Ajax{ //ajax调用的方法 //sql是要执行的语句 //$type是SQL语句的类型,0代表增删改,1代表查询 //$db代表要操作的数据 public fun ...
- 利用pl/sql developer进行远程连接oracle server出现的问题及解决办法
由于本人刚刚给自己的笔记本做了系统,由原来的32位系统编程现在的64位系统,所以,很多软件由于兼容性,不得不重新安装...当我安完了pl/sql developer工具后,就满心欢喜的去连接远程ora ...
- (转)IOS之Info.plist文件简介
原文:IOS之Info.plist文件简介 http://www.apkbus.com/android-130240-1-1.html (出处: Android开发论坛 - 安卓开发论坛 - Andr ...
- Python运算符与表达式
Python运算符包括赋值运算符.算术运算符.关系运算符.逻辑运算符.位运算符.成员运算符和身份运算符. 表达式是将不同类型的数据(常亮.变量.函数)用运算符按照一定得规则连接起来的式子. 算术运算符 ...
- 2、SQL基础整理(聚合函数)
聚合函数 --求平均 select AVG(age) as 年龄 from xuesheng select AVG(chinese) as 语文 from xuesheng where class ...