Leetcode Restore IP Addresses
来源:互联网 发布:还珠格格3知画结婚 编辑:程序博客网 时间:2024/06/10 21:02
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given "25525511135"
,
return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
方法一:暴力破解法
写代码时没有思虑周全,一开始忘了对每个字段进行判断小于255,之后调试发现,需要处理当数字位数大于1但以0为开头的情况。
class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> result; int len = s.length(); int a,b,c,d; for(a=1;a<=3;a++) for(b=1;b<=3;b++) for(c=1;c<=3;c++) for(d=1;d<=3;d++) { if(a+b+c+d == len) { string strA = s.substr(0,a); string strB = s.substr(a,b); string strC = s.substr(a+b,c); string strD = s.substr(a+b+c,d); int IntA = stoi(s.substr(0,a)); int IntB = stoi(s.substr(a,b)); int IntC = stoi(s.substr(a+b,c)); int IntD = stoi(s.substr(a+b+c,d)); if(IntA <= 255 && IntB <= 255 && IntC <= 255 && IntD <= 255) { if((a != 1 && strA[0] == '0') || (b != 1 && strB[0] == '0') || (c != 1 && strC[0] == '0') || (d != 1 && strD[0] == '0')) continue; else { string temp = strA +'.'+ strB+'.' + strC+'.' + strD; result.push_back(temp); } } } } return result; }};
方法二:递归方法
restore函数中的result需要加引用,不然只会是拷贝,找这个bug蛋疼了蛮久 - -
class Solution {public: vector<string> restoreIpAddresses(string s) { vector<string> result; restore(s,result,0,0,""); return result; } void restore(string s,vector<string>& result,int idx,int count,string restored) { if(count > 4) return; if(count == 4 && idx == s.length()) result.push_back(restored); for(int i=1;i<4;i++) { if(idx+i > s.length()) break; string temp = s.substr(idx,i); if(stoi(temp) > 255) continue; if(i > 1 && temp[0] == '0') continue; restore(s,result,idx+i,count+1,restored+temp+(count==3?"":".")); } }};
阅读全文
0 0
- LeetCode: Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- [LeetCode]Restore IP Addresses
- LeetCode:Restore IP Addresses
- LeetCode Restore IP Addresses
- [leetcode] Restore IP Addresses
- LeetCode:Restore IP Addresses
- [LeetCode] Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode | Restore IP Addresses
- 【leetcode】Restore IP Addresses
- Leetcode: Restore IP Addresses
- leetcode Restore IP Addresses
- leetcode Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Leetcode: Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Android中实现夜间模式
- 自用强大代码的各种整合
- global average pooling
- JavaScript闭包
- 最好用的mysql密码忘记的解决方法
- Leetcode Restore IP Addresses
- Apache Maven 入门篇(下)
- shell字符串包含空格处理
- 今日头条的视频地址解析方法
- Hibernate 双向关联实体转Json
- HBase Rowkey设计
- 49、把字符串转换成整数
- linux小技巧:快速合并压缩文件
- PaaS平台的尴尬与变革