题目
坑
第一遍做的时候没有考虑到的事:
- path长度为4代表取到四个整数,但同时还要保证已经遍历完整个字符串
这里IP地址有很多限制,先回溯找到再去一个个判断。 ```javascript var restoreIpAddresses = function(s) { let res =[]; let path =[]; let len =s.length;
const backTracing =function(startIndex){
const pathLen =path.length; //path长度动态变化,提前固定
if(pathLen >4) return;
if(pathLen===4 && startIndex===len){
//取到4个整数且遍历完整个字符串!
res.push(path.join('.'));
return;
}
for(let i=startIndex;i<len;i++){
const str =s.slice(startIndex,i+1);//取出子串来进行判断
if(str.length>3||+str>255) break; //直接结束,+一元字符串转Number
if(str.length>1&&str[0]==='0') break;
path.push(str);
backTracing(i+1);
path.pop();
}
} backTracing(0); return res;
}; ```