LeetcodeOJ: Restore IP Addresses backtrack暴搜

 1 class Solution {
 2     public:
 3     vector<string> ret;
 4     string src;
 5     int len;
 6     unordered_set<string> added;
 7     vector<string> restoreIpAddresses(string s) {
 8         if ( s.empty() )  return ret;
 9         src = s;
10         len = src.size();
11         backTrack(0,0,  "");
12         return ret;
13     }
14
15     void backTrack(int pos, int dot_cnt, string substr) {
16         if ( dot_cnt > 4 ) return;
17         if ( pos >= len && dot_cnt == 4 ) {
18             substr.pop_back();
19             if ( added.find(substr) == added.end() ) {
20                 ret.push_back( substr );
21                 added.insert( substr );
22             }
23             return;
24         }
25         char buffer[16];
26         int tx = len - pos > 3 ? 3 : len - pos;
27         for ( int i = 1; i <= tx; i++ ) {
28             string temp = src.substr( pos, i );
29             int number = atoi( temp.c_str() );
30             sprintf( buffer, "%d", number );
31             string str(buffer);
32             if ( str != temp ) continue;
33             string newsub = substr + temp + ".";
34             if ( number >= 0 && number <= 255 ) {
35                 backTrack( pos + i, dot_cnt + 1,  newsub );
36             }
37         }
38     }
39 };
时间: 2024-08-12 09:18:44

LeetcodeOJ: Restore IP Addresses backtrack暴搜的相关文章

leetcode -day29 Binary Tree Inorder Traversal &amp; Restore IP Addresses

1.  Binary Tree Inorder Traversal Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 2 / 3 return [1,3,2]. Note: Recursive solution is trivial, could you do it iteratively? 分析:求二叉树的中序

[LeetCode]Restore IP Addresses

题目:Restore IP Addresses 将数字串转换成合法的IP地址,返回所有可能的情况. 思路: 移动3个地址分隔符".",将地址换分成四份,检查是否合法: 注意不能有0开头的地址段(它是非法的),且不用将开头的0去掉. 中间的点从第一个点的后面开始向尾部移动,当第一个点与第二个点的距离大于3时,第一个点向后移动一步,第二个点还原到当前第一个点的后面: 当第一个点移动到最后一个点的前2个位置,则,最后一个点向前移动一步,第一个点和第二个点还原: 最后一个点到串尾距离大于3则退

Leetcode题解(2):L93/Restore IP Addresses

L93: Restore IP Addresses 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 n

【leetcode刷题笔记】Restore IP Addresses

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) 题解:深度优先搜索.用resul

【leetcode】Restore IP Addresses

Restore IP Addresses 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 mat

LeetCode: Restore IP Addresses [093]

[题目] 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) [题意] 给定一个字

Restore IP Addresses leetcode java

题目: 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) 题解: 利用循环递归解

【LeetCode】93. Restore IP Addresses 【面试题】

Restore IP Addresses 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 mat

93. Restore IP Addresses

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) 什么时候临时容器符合题意加入结