【leetcode】Restore IP Addresses
2015-01-03 10:52
495 查看
Restore IP Addresses
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)
利用回溯法,注意几种情况:
0.0.0.0是合法的
01.1.1.1是不合法的
“10000”只能拆成10.0.0.0
class Solution { public: vector<string> restoreIpAddresses(string s) { vector<string> result; string tmp=""; bt(s,result); return result; } void bt(string s,vector<string> &result,int start=0,string tmp="",int left=5) { left--; int n=s.length(); //找到的条件 if(left==0&&start==n) { //去除最后一个点 tmp.pop_back(); result.push_back(tmp); return; } //停止条件 if(left==0||(n-start)/left>3||(n-start)/left==0||start>n) { return; } string tmpStr; if(n-start>=1) { tmpStr=tmp; string str1=s.substr(start,1); tmp+=str1; bt(s,result,start+1,tmp+".",left); tmp=tmpStr; } if(n-start>=2&&s[start]!='0') { tmpStr=tmp; string str2=s.substr(start,2); tmp+=str2; bt(s,result,start+2,tmp+".",left); tmp=tmpStr; } if(n-start>=3&&s[start]!='0') { tmpStr=tmp; string str3=s.substr(start,3); int n = atoi(str3.c_str()); if(n<=255) { tmp+=str3; bt(s,result,start+3,tmp+".",left); tmp=tmpStr; } } } };
相关文章推荐
- LEETCODE: Restore IP Addresses
- leetcode — restore-ip-addresses
- [leetcode 93] Restore IP Addresses
- LeetCode:Restore IP Addresses
- [Leetcode 74] 92 Restore IP Addresses
- LeetCode--restore-ip-addresses
- leetcode - Restore IP Addresses
- leetcode做题总结,题目Restore IP Addresses 93
- Leetcode--Restore IP Addresses
- 【LeetCode】Restore IP Addresses
- Leetcode(93): Restore IP Addresses
- [LeetCode]Restore IP Addresses
- Restore IP Addresses--LeetCode
- C++ 写leetcode遇到的一些问题总结Restore IP Addresses
- LeetCode-Restore IP Addresses
- [leetcode] Restore IP Addresses
- Leetcode Restore IP Addresses
- Restore IP Addresses -- leetcode
- LeetCode - Refresh - Restore IP Addresses
- Restore IP Addresses leetcode java