算法作业HW9:LeetCode93 Restore IP Addresses
来源:互联网 发布:淘宝rx65电子狗 编辑:程序博客网 时间:2024/05/16 07:23
Description:
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
Note:
For example:
Given "25525511135"
,return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
Solution:
Analysis and Thinking:
使用分治的思想,通过将原始问题不断缩减为同类性质的小问题,逐一解决,最后再把所有解答集成形成最终答案。这里我们可以用'.'作为分割的标志,将一个初始输入的字符串分割成4个子段,并且能通过4个子段组合成一个符合规定的IP地址。其中每一个子段可能包含1位、2位、或者3位,因此最终需要分类讨论。
Steps:
1.判断输入字符串是否已被全部遍历,且生成了4个段,如果是,停止函数并返回
2.判断字符串总长度是否大于规定的长度,如果是,返回
3.如果输入的字符串只包含1个字符,则加入该字符,且将位置标志加1,子段数量加1,调用自身函数
4.如果输入的字符串包含2个字符,加入这2个字符,将位置标志加2,子段数量加1,调用自身函数
5.如果输入的字符串包含3个字符,加入这3个字符,将位置标志加3,子段数加1,调用自身函数
Codes:
class Solution { public: void ipAddress_solution(string &s,int stringSize,int pos,string &record,vector<string> &result) { if(s.size()-pos>3*(4-num)) return; if(pos==s.size()&&stringSize==4) { result.push_back(record.substr(0,path.size()-1)); return; } if(pos<s.size()) { record=record+s.substr(pos,1)+"."; ipAddress_solution(s,stringSize+1,pos+1,record,result); record=record.substr(0,record.size()-2); } if(pos<s.size()-1&&s[pos]!='0') { record=record+s.substr(pos,2)+"."; ipAddress_solution(s,stringSize+1,pos+2,record,result); record=record.substr(0,record.size()-3); } if(pos<s.size()-2&&s[pos]!='0'&&s.substr(pos,3)<="255") { record=s.substr(pos,3)+"."; ipAddress_solution(s,stringSize+1,pos+3,record,result); record=record.substr(0,record.size()-4); } } vector<string> restoreIpAddress(string s) { vector<string> result; string record; ipAddress_solution(s,0,0,record,result); return result; } };
Results:
0 0
- 算法作业HW9:LeetCode93 Restore IP Addresses
- LeetCode93:Restore IP Addresses
- LeetCode93. Restore IP Addresses
- Leetcode93. Restore IP Addresses
- leetcode93. Restore IP Addresses
- LeetCode93 Restore IP Addresses
- [JAVA]LeetCode93 Restore IP Addresses
- LeetCode93—Restore IP Addresses
- LeetCode93——Restore IP Addresses
- leetcode93-Restore IP Addresses(存储合法ip地址)
- 算法训练: Restore IP Addresses
- 93. Restore IP Addresses 回溯算法
- 算法系列——Restore IP Addresses
- LeetCode: Restore IP Addresses
- Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Restore IP Addresses
- 实验三 无损数据压缩编解码实验(LZW编解码)
- Latex
- BP误差反向传播算法
- 大众点评订单系统分库分表实践
- 感知器-从零开始学深度学习
- 算法作业HW9:LeetCode93 Restore IP Addresses
- Windows 用Anaconda装CPU版Tensorflow
- 基于 Python 的数据结构与算法分析学习记录(6-5)——树的节点表示
- 共享数据的锁定(订单系统)
- python打包exe文件-ImportError: No module named 'queue'
- linux-ssh,sudo
- python-opencv
- 函数可重入性
- JSP中遍历map里的list,或者 遍历list里的map