class Solution {
public:
vectorres;
string temp="";
vector restoreIpAddresses(string s) {
backtracking(s,0,0);
return res;
}
void backtracking(string s,int st,int Num)
{
if(temp.size()==s.size()+3&&Num==4&&st==s.size())
{
res.push_back(temp);
return;
}
for(int i=st;
i {
string obj=s.substr(st,i-st+1);
string ori=temp;
if(Judge(obj)&&Num<4)
{
temp+=obj;
if(Num<3)
temp+=".";
Num++;
}
else
break;
backtracking(s,i+1,Num);
temp=ori;
Num--;
}
}
bool Judge(string obj)
{
if(obj[0]=='0'&&obj.size()>1)
return false;
int v=stoi(obj);
【leetcode|LeetCode93】if(v<0||v>255)
return false;
return true;
}
};
推荐阅读
- 算法与数据结构|电信保温杯笔记——代码随想录 刷题攻略 回溯算法
- 被LeetCode锤爆的日子|【LeetCode】 梦的开始---两数之和
- leetcode|【LeetCode】set集合+哈希表+快慢指针
- leetcode|Leetcode哈希表题目总结(持续更新)
- leetcode|【leetcode刷题】哈希表-第1篇
- 散列表|leetcode哈希表java
- leetcode算法|LeetCode——哈希表篇
- c++|qt基础入门教程
- #yyds干货盘点#Leetcode周赛 6022. 将数组和减半的最少操作次数