Restore IP Addresses
来源:互联网 发布:php招聘要求 编辑:程序博客网 时间:2024/05/16 02:38
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)
1.我的答案 回溯
class Solution {public: void split(vector<string>&res, string s, vector<string>& vec, int num){ int len = s.size(); if(num == 0 && len > 0 && len < 4){ if(s.size()>1 && s[0] == '0') return; else{ int temp = atoi(s.c_str()); if(temp <=255 && temp >=0){ string sres = vec[0]+"."+vec[1]+"."+vec[2]+"."+s; res.push_back(sres); return; } } } int i = 1; while(i <=3 && i < len){ string stemp = s.substr(0,i); if(stemp.size()>1 && stemp[0] == '0'){//用来判断是否有“010”这种情况出现,出现就删掉 ++i; continue; } else{ int sint = atoi(stemp.c_str()); if(sint <= 255 && sint >=0){ vec.push_back(stemp); string str2 = s.substr(i,len-i); split(res,str2,vec,num-1); vec.pop_back(); } } ++i; } return;}vector<string> restoreIpAddresses(string s) { vector<string>res,vec; int num = 3; int len = s.size(); if(len < 4 || len > 12) return res; split(res,s,vec,num); return res;}};
2.别人的答案,时间一样,就是比我的要整洁
class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> result; string ip; dfs(s,0,0,ip,result); //paras:string s,start index of s,step(from0-3),intermediate ip,final result return result; } void dfs(string s,int start,int step,string ip,vector<string>& result){ if(start==s.size()&&step==4){ ip.erase(ip.end()-1); //remove the last '.' from the last decimal number result.push_back(ip); return; } if(s.size()-start>(4-step)*3) return; if(s.size()-start<(4-step)) return; int num=0; for(int i=start;i<start+3;i++){ num=num*10+(s[i]-'0'); if(num<=255){ ip+=s[i]; dfs(s,i+1,step+1,ip+'.',result); } if(num==0) break; } }};
0 0
- LeetCode: Restore IP Addresses
- Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Restore IP Addresses
- [LeetCode]Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode:Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode Restore IP Addresses
- [leetcode] Restore IP Addresses
- Restore IP Addresses
- LeetCode:Restore IP Addresses
- [LeetCode] Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode | Restore IP Addresses
- Java Web基础知识之安全:人生苦短,注意安全
- fzoj Problem 2233 ~APTX4869 【并查集】
- Bitmap和Drawable详解
- display与visibility的区别
- 华为面试题
- Restore IP Addresses
- 9. Palindrome Number [easy] (Python)
- leetcode-69. Sqrt(x)
- (不易)POJ-3190 区间贪心
- 关于“万物皆数”的一些观点
- 在eclipse中运行Mapreduce & spark
- Unsupported major.minor version 51.0解决办法 jdbc链接时候报错,或部署项目后版本不一致导致。
- 86_OOM异常
- hdu-5349-MZL's simple problem