Restore IP Addresses

题目大意:给定一个数字串,求这个数字串能表示的所有ip地址


解题思路:深度遍历递归


class Solution {
public:vector restoreIpAddresses(string s) {string ipAddress;vector 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 &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;}
};



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部