class Solution {
public:
string st;
vector<string> ans;
void dfs(int idx,string temp,int cnt){
if(cnt==4){
if(idx==st.length()){
ans.push_back(temp.substr(0,temp.length()-1));return;
}
}
vector<string> t;string a="";
for(int i=idx;i<st.length();i++){
if(0<=st[i]-'0'&&st[i]-'0'<=9){
a+=st[i];
if(0<=stoi(a)&&stoi(a)<=255){
t.push_back(a);
}else break;
}else break;
}
for(int i=0;i<t.size();i++){
string a = t[i];
if(a.length()!=1&&a[0]=='0') continue;
dfs(idx+i+1,temp+t[i]+".",cnt+1);
}
}
vector<string> restoreIpAddresses(string s) {
st = s;string a = "";
dfs(0,a,0);
return ans;
}
};
재귀로 했습니다
지적이나 조언 매우감사합니다
댓글 0