马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
题目形貌
93. Restore IP Addresses
代码
回溯法
- class Solution {
- vector<string> res;
- public:
- vector<string> restoreIpAddresses(string s) {
- string IP;
- int part = 0;
- backtracking(s,0,IP,part);
- return res;
- }
- void backtracking(const string &s,int start,string &IP,int &part){
- if(start == s.size())
- {
- if(part == 4)
- res.push_back(IP);
- return;
- }
- if(part==4)
- return;
- int iplen = IP.size();
- for(int i = start;i < s.size();i++){
- if(i >start && s[start]=='0')//前导0的数字不考虑
- break;
- int temp = atoi(s.substr(start,i-start+1).c_str());
- if(temp >255)//大于255的不考虑,后面的只会更大,所以break
- break;
- IP += (s.substr(start,i-start+1));
- if(part<3)
- IP.push_back('.');
- part++;
- backtracking(s,i+1,IP,part);
- IP.resize(iplen);
- part--;
- }
- }
- };
复制代码 |