classSolution{private:vector<string>res;voidbacktracking(conststring&s,intstartIndex,intcurrSize,stringpath){if(startIndex==s.length()){if(currSize==4){path.pop_back();// delete the final "."res.push_back(path);}return;}if(currSize==4)return;for(inti=startIndex,temp=0;i<s.length();i++){if(i>startIndex&&s[startIndex]=='0')break;temp=temp*10+s[i]-'0';if(temp<=255)backtracking(s,i+1,currSize+1,path+to_string(temp)+'.');elsebreak;}}public:vector<string>restoreIpAddresses(strings){backtracking(s,0,0,"");returnres;}};