|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目描述:
- 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
- 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 '.' 分隔。
-  
- 示例:
- 输入: "25525511135"
- 输出: ["255.255.11.135", "255.255.111.35"]
- 来源:力扣(LeetCode)
- 链接:https://leetcode-cn.com/problems/restore-ip-addresses
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码
- class Solution {
- public:
- void dfs(string& s, int cur, vector<string>&temp, vector<string>& res){
- if(cur > s.size() || temp.size() > 4 || (cur >= s.size() && temp.size() < 4)) return;
- if(temp.size() == 4){
- if(cur == s.size()){
- string store;
- for(auto cha : temp) store = store + cha + ".";
- res.push_back(store.substr(0, store.size() - 1));
- }
- return;
- }
- vector<string> store1 = {s.substr(cur, 1), s.substr(cur, 2), s.substr(cur, 3)};
- for(int i = 0; i < 3; i++){
- if(store1[i][0] == '0' && store1[i].size() > 1) continue;
- if(stoi(store1[i]) <= 255){
- temp.push_back(store1[i]);
- dfs(s, cur + i + 1, temp, res);
- temp.pop_back();
- }
- }
- }
- vector<string> restoreIpAddresses(string s) {
- vector<string> res;
- vector<string> temp;
- dfs(s, 0, temp, res);
- return res;
- }
- };
复制代码
|
|