题解 | 数字字符串转化成IP地址
数字字符串转化成IP地址
https://www.nowcoder.com/practice/ce73540d47374dbe85b3125f57727e1e
#include <string>
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串vector
*/
vector<string>data;
void restoreIp(string s,int num,string q) {
if(s.size()==0){
if(num==0){
q.pop_back();
data.push_back(q);
return;}
else {
return;
}
}
if(s[0]!='0'){
restoreIp(s.substr(1),num-1,q+string(1,s[0])+".");
if(s.size()>=2)
restoreIp(s.substr(2),num-1,q+string(1,s[0])+string(1,s[1])+".");
if(stoi(s.substr(0,3))<=255 and s.size()>=3)
restoreIp(s.substr(3),num-1,q+string(1,s[0])+string(1,s[1])+string(1,s[2])+".");
}
else
restoreIp(s.substr(1),num-1,q+string(1,s[0])+".");
}
vector<string> restoreIpAddresses(string s) {
string q="";
if(s.size()>=4)
restoreIp(s,4,q);
return data;
}
};
查看3道真题和解析