93.leetcode Restore IP Addresses(medium)[回溯 DFS]
来源:互联网 发布:imovie mac 教程 编辑:程序博客网 时间:2024/06/06 10:45
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有4个段,每个段的字符个数可能是1,2,3,因此对每一段循环取1,2,3,然后标记当前是对应的IP段的哪个段,直到IP端已经分为4个段并且取完了string这个时候取到一个合法的ip放入最后的结果中。对每次处理的时候如果按照每次取i个字符处理之后,调用递归取后面的段之后需要把前面的取i得到的字符串去掉,因为如果这里取的满足条件那么后面一定已经存放到结果中。现在需要新起一个开头处理。
class Solution {public: bool validIP(string digit) { int n = digit.size(); if(n>1) { if(digit[0] == '0') return false; } const char *chara = digit.c_str(); int num = atoi(chara); if(num>=0 && num<=255) return true; else return false; } void getIP(string &s,int start,int drag,string &mid,vector<string> &result) { if(drag == 4) { //cout<<mid<<endl;if(start == s.size() && mid != "") { result.push_back(mid.substr(0,mid.size()-1)); mid = ""; } return; } for(int k=1;k<=3 && start+k-1<s.size();k++){string temp = s.substr(start,k); if(validIP(temp)) { string m = mid; mid += temp +'.'; getIP(s,start+k,drag+1,mid,result); mid = m; }} return; } vector<string> restoreIpAddresses(string s) { int len = s.size(); vector<string> result; if(len>12 || len<4) return result; string mid; getIP(s,0,0,mid,result); return result; }};
0 0
- 93.leetcode Restore IP Addresses(medium)[回溯 DFS]
- Leetcode 93. Restore IP Addresses (Medium) (cpp)
- Leetcode:93. Restore IP Addresses(Week1, Medium)
- leetcode---Restore IP Addresses---回溯
- 93. Restore IP Addresses -Medium
- leetcode---restore-ip-addresses---dfs
- [Leetcode 93, Medium] Restore IP Addresses
- Restore IP Addresses---medium
- LeetCode Restore IP Addresses(回溯法)
- leetcode 93. Restore IP Addresses DFS深度优先遍历
- leetcode -- Restore IP Addresses -- 重点,dfs
- 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之Http通信HttpConnection
- LA 3644并查集
- LruCache源码解析
- SPOJ COT(树上k大,主席树+LCA)
- FFmpeg音视频同步的问题
- 93.leetcode Restore IP Addresses(medium)[回溯 DFS]
- MySQL for mac 连接报错:Access denied for user 'root'@'localhost' (using password: YES)
- Codeforces Round #368 (Div. 2) D Persistent Bookcase(离线+DFS)
- [2-sat]模型基础(poj3678)
- Day0823_将音乐库中的音乐在Service中异步加载, 播放音乐并设置到通知栏
- pycharm设置
- Linux USB Driver
- UVaLive 6697 (DP)
- Eclipse中写Spark代码