leetcode.93复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/restore-ip-addresses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
对每个可能的分割进行判断
class Solution {
public:
int t(string q){
int s=0,o;
if(q[0]=='0'&&q.length()>1){
return 256;
}
for(o=0;o<q.length();o++){
s*=10;
s+=q[o]-'0';
}
return s;
}
vector<string> restoreIpAddresses(string s) {
int i,j,k,l;
vector<int> a;
vector<string> res;
string q="";
for(i=0;i<=2&&i<s.length()-3;i++){
for(j=i+1;j<=i+3&&j<s.length()-2;j++){
for(k=j+1;k<=j+3&&k<s.length()-1;k++){
if(s.length()-k<=4&&t(s.substr(0,i+1))<=255&&t(s.substr(i+1,j-i))<=255&&t(s.substr(j+1,k-j))<=255&&t(s.substr(k+1,s.length()-k))<=255){
q+=((s.substr(0,i+1)));
q+=".";
q+=((s.substr(i+1,j-i)));
q+=".";
q+=((s.substr(j+1,k-j)));
q+=".";
q+=((s.substr(k+1,s.length()-k)));
res.push_back(q);
q="";
}}
}
}
return res;
}
};

浙公网安备 33010602011771号