LeetCode 93. Restore IP Addresses

题目

class Solution {
public:
    vector<string> ans;
    vector<string> restoreIpAddresses(string s) {
        
        fun(s,0,"",0);
        
        return ans;
        
    }
    
    void fun(string s,int pos,string res,int num)
    { 
        if(num==4)
        {
            if(pos==s.length())
            {
                
                ans.push_back(res.substr(0,res.length()-1));
            }
            return;
        }
            
        string ss="";
        for(int i=pos;i<s.length()&&i<pos+3;i++)
        {
            
            ss += s[i];

            if(judge(ss))
            {
            
                string str = ss +".";     
                fun(s,i+1,res+str,num+1);
            }
        }
    }
    
    bool judge(string s)
    {
        int x = atoi(s.c_str());
            
        if(!(x>=0&&x<=255))
        {
            return false;
        }
        
        if(s[0]=='0'&&s.length()>=2)
        {
            return false;
        }
        
        return true;
    }
    
};
原文地址:https://www.cnblogs.com/dacc123/p/12146289.html