leetcode-----93. 复原IP地址

代码

class Solution {
public:
    vector<string> ans;

    vector<string> restoreIpAddresses(string s) {
        dfs(s, 0, 0, "");
        return ans;    
    }

    void dfs(string& s, int u, int k, string path) {
        if (u == s.size()) {
            if (k == 4) {
                path.pop_back();
                ans.push_back(path);
            }
            return;
        }
        if (k == 4) return;
        for (int i = u, t= 0; i < s.size(); ++i) {
            if (i > u && s[u] == '0') break;
            t = t * 10 + s[i] - '0';
            if (t <= 255) dfs(s, i + 1, k + 1, path + to_string(t) + '.');
            else break;
        }
    }

};
posted @ 2020-07-16 21:26  景云ⁿ  阅读(62)  评论(0编辑  收藏  举报