LeetCode93 Restore IP Addresses
2024-09-05 22:21:59
题目:
Given a string containing only digits, restore it by returning all possible valid IP address combinations. (Medium)
For example:
Given "25525511135"
,
return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
分析:
使用回溯法即可。helper函数用来处理DFS过程,isValid判断一个子串是否符合IP地址一个点分十进制的一块。
注意在isValid中要除去类似00,01这种0打头的情况。
代码:
class Solution {
private:
vector<string> result;
bool isValid(const string& s) {
if (s[] == '' && s.size() > ) { // for case like "00.122.122.122"
return false;
}
int num = stoi(s);
if (num >= && num <= ) {
return true;
}
return false;
}
void helper(const string& s, string curS, int start, int step) {
if (step == ) {
if (start != s.size()) {
return;
}
curS.pop_back();
result.push_back(curS);
return;
}
for (int i = ; i <= ; ++i) {
if (start + i <= s.size()) {
string tempS = s.substr(start, i);
if (isValid(tempS)) {
string newS = curS + tempS;
newS.push_back('.');
helper(s, newS, start + i, step + );
}
}
}
}
public:
vector<string> restoreIpAddresses(string s) {
string curS;
helper(s, curS, , );
return result;
}
};
最新文章
- Android中的自定义视图控件
- shell脚本的执行
- mysql与oracle的存储过程有什么区别?
- 解决Cannot find or open the PDB file问题
- iphone/ipad关于size, frame and bounds总结和UIScroll view学习笔记
- JavaScript宝座:七大框架论剑
- [记录] nicescroll 在bootstrap tabs中工作
- Android开发之Action Bar
- Substrings
- IOS学习之路八(GCD与多线程)
- Augular JS里的各种ng
- MyEclipse 2014 破解版下载:我有,需要的给我说一声,给你发过去
- hset和hget
- 编程菜鸟的日记-《软件测试》Ron Patton著-读书笔记
- Windows安装activemq
- DDR3初识
- 一些hue的参考网址
- vue组件之时间组件
- 学习windows编程 day4 之 盯裆猫
- Project Euler Problem6