leetcode 93. Restore IP Addresses

[复制链接]
发表于 2025-7-28 10:11:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
题目形貌

93. Restore IP Addresses

代码

回溯法
  1. class Solution {
  2.     vector<string> res;
  3. public:
  4.     vector<string> restoreIpAddresses(string s) {
  5.         string IP;
  6.         int part = 0;
  7.         backtracking(s,0,IP,part);
  8.         return res;
  9.     }
  10.     void backtracking(const string &s,int start,string &IP,int &part){
  11.         if(start == s.size())
  12.         {
  13.             if(part == 4)
  14.                 res.push_back(IP);
  15.             return;
  16.         }
  17.         if(part==4)
  18.             return;
  19.         int iplen = IP.size();
  20.         for(int i = start;i < s.size();i++){
  21.             if(i >start && s[start]=='0')//前导0的数字不考虑
  22.                 break;
  23.             int temp = atoi(s.substr(start,i-start+1).c_str());
  24.             if(temp >255)//大于255的不考虑,后面的只会更大,所以break
  25.                 break;
  26.             IP += (s.substr(start,i-start+1));
  27.             if(part<3)
  28.                 IP.push_back('.');
  29.             part++;
  30.             backtracking(s,i+1,IP,part);
  31.             IP.resize(iplen);
  32.             part--;
  33.         }
  34.     }
  35. };
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表