给定一个只包含数字的字符串,复原它并返回所有可能的 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; } };