力扣OJ 93. 復原IP地址

給定一個只包含數字的字符串,復原它並返回所有可能的 IP 地址格式。

有效的 IP 地址正好由四個整數(每個整數位於 0 到 255 之間組成),整數之間用 '.' 分隔。

 

示例:

輸入: "25525511135"
輸出: ["255.255.11.135", "255.255.111.35"]

 

 

class Solution {
public:
    vector<string> restoreIpAddresses(string s,int k) {
        vector<string>ans;
        if(s.length()==0)return ans;
        if(k>1)for(int i=0;i<3 && i<s.length()-1;i++)
        {
            string s1=s.substr(0,i+1),s2=s.substr(i+1,s.length()-i-1);
            int x=atoi(s1.c_str());
            if(x>255 || s[0]=='0' && s1.length()>1 || s1.length()>3)continue;
            vector<string>tmp=restoreIpAddresses(s2,k-1);
            for(int j=0;j<tmp.size();j++)
            {
                string s3=tmp[j];
                ans.push_back(s1+"."+s3);
            }
        }
        else
        {
            int x=atoi(s.c_str());
            if(x>255 || s[0]=='0' && s.length()>1 || s.length()>3);
            else ans.push_back(s);
        }
        return ans;
    }
    vector<string> restoreIpAddresses(string s) {
        return restoreIpAddresses(s,4);
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章