[LeetCode] Restore IP Addresses 解题报告
2013-01-01 07:33
483 查看
Given a string containing only digits, restore it by returning all possible valid IP address combinations.For example:
Given
[解题思路]
递归的将数字串分成四个部分,每个部分满足0<=p<=255。要注意一些边界case,比如010是没有意思的,“0.10.010.1”。
Given
"25525511135",return
["255.255.11.135", "255.255.111.35"]. (Order does not matter)» Solve this problem
[解题思路]
递归的将数字串分成四个部分,每个部分满足0<=p<=255。要注意一些边界case,比如010是没有意思的,“0.10.010.1”。
1: vector<string> restoreIpAddresses(string s) { 2: vector<string> col; 3: string ip; 4: partitionIP(s, 0, 0, ip, col); 5: return col; 6: } 7: void partitionIP(string s, int startIndex, int partNum, 8: string resultIp, vector<string>& col) 9: { 10: //max: 3 bits per partition 11: if(s.size() - startIndex > (4-partNum)*3) return; 12: //min: 1 bit per partition 13: if(s.size() - startIndex < (4-partNum)) return; 14: if(startIndex == s.size() && partNum ==4) 15: { 16: resultIp.resize(resultIp.size()-1); 17: col.push_back(resultIp); 18: return; 19: } 20: int num =0; 21: for(int i = startIndex; i< startIndex +3; i++) 22: { 23: num = num*10 + (s[i]-'0'); 24: if(num<=255) 25: { 26: resultIp+=s[i]; 27: partitionIP(s, i+1, partNum+1, resultIp+'.', col); 28: } 29: if(num ==0)//0.0.0.0 valid, but need to avoid 0.1.010.01 30: { 31: break; 32: } 33: } 34: }
相关文章推荐
- 【LeetCode】Restore IP Addresses 解题报告
- Restore IP Addresses [Leetcode 解题报告]
- [LeetCode] Restore IP Addresses 解题报告
- LeetCode解题报告—— Reverse Linked List II & Restore IP Addresses & Unique Binary Search Trees II
- [LeetCode]Restore IP Addresses, 解题报告
- LeetCode 93. Restore IP Addresses 解题报告
- [leetcode] 93. Restore IP Addresses 解题报告
- [Leetcode] 93. Restore IP Addresses 解题报告
- Restore IP Addresses(leetcode)
- Leetcode: Restore IP Addresses
- leetcode - Restore IP Addresses
- [Leetcode 93, Medium] Restore IP Addresses
- LeetCode-Restore IP Addresses<ERROR>
- LeetCode--Restore IP Addresses
- Restore IP Addresses @Leetcode
- leetcode---Restore IP Addresses---回溯
- leetcode - Restore IP Addresses
- leetcode || 93、 Restore IP Addresses
- LeetCode_Restore IP Addresses
- Leetcode Restore IP Addresses