Restore IP Addresses
来源:互联网 发布:amd显卡驱动linux 编辑:程序博客网 时间:2024/06/09 13:54
题目大意:给定一个数字串,求这个数字串能表示的所有ip地址
解题思路:深度遍历递归
class Solution {public: vector<string> restoreIpAddresses(string s) { string ipAddress; vector<string> result; if(s.empty()) { return result; } restoreIpAddressAssist(s, 0, 0, result, ipAddress); return result; }private: void restoreIpAddressAssist(const string& s, int startIndex, int digits, vector<string> &result, string &ipAddress) { if(digits >= 4) { if(digits == 4 && startIndex >= s.size()) { result.push_back(ipAddress); } return; } for(int i = 1; i <= 3; i++) { if(startIndex + i <= s.size()) { string subStr = s.substr(startIndex, i); if(isNormalDigit(subStr) && atoi(subStr.c_str()) <= 255) { digits++; ipAddress.append(subStr); int len = subStr.size(); if(digits < 4) { ipAddress.append("."); len++; } restoreIpAddressAssist(s, startIndex + subStr.size(), digits, result, ipAddress); for(int k = 0; k < len; k++) { ipAddress.pop_back(); } digits--; } } else { return; } } } bool isNormalDigit(const string &s) { if(s.size() > 1 && s[0] == '0') { return false; } return true; }};
0 0
- LeetCode: Restore IP Addresses
- Restore IP Addresses
- LeetCode : Restore IP Addresses
- [LeetCode] Restore IP Addresses
- Restore IP Addresses
- [LeetCode]Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode:Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses
- LeetCode Restore IP Addresses
- [leetcode] Restore IP Addresses
- Restore IP Addresses
- LeetCode:Restore IP Addresses
- [LeetCode] Restore IP Addresses
- LeetCode - Restore IP Addresses
- LeetCode | Restore IP Addresses
- 示例11 调用存储过程
- Cocos2d-x《雷电大战》(5)-单例模式英雄飞机闪亮登场!
- RMI远程方法调用demo,适合新手
- 增加留言版块——在线留言板1
- 几种验证控件
- Restore IP Addresses
- 推荐系统相关算法(1):SVD
- linux下LED驱动开发(简单明了)
- VMware 虚拟机启动BIOS
- 黑马程序员——C语言基础——排列
- c/c++程序在内存中的分布
- 父子进程间文件描述符的共享
- 关于划分树
- POJ 1905 Expanding Rods