題目網址:https://leetcode.com/problems/restore-ip-addresses/?tab=Description
題目的意思是就是給你一串String 問你可能有哪幾種IP組合。
Given "25525511135"
,
return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter)
解法很單純就是多重迴圈而已沒什麼特別好講的,forEach而已,一直去看是否符合IP的條件,不符合就繼續找。(沒想到什麼特別好用的搜尋法)
附上通過證明。
/**
* @param {string} s
* @return {string[]}
*/
var restoreIpAddresses = function(s) {
result = [];
var len = s.length;
for(var i = 1 ; i < 4 && i < len-2 ; i++){
var s1 = s.substring(0,i);
if(!isValid(s1))continue;
for(var j = i+1 ; j < i+4 && j<len-1 ; j++){
var s2 = s.substring(i,j);
if(!isValid(s2))continue;
for(var k = j + 1 ; k < k +4 && k<len ; k++){
var s3 = s.substring(j,k);
if(!isValid(s3))continue;
var s4 = s.substring(k,len);
if(!isValid(s4))continue;
result.push(""+s1+"."+s2+"."+s3+"."+s4);
}
}
}
return result;
};
function isValid(n){
return !((n.charAt(0)==='0'&&n.length>1) || n>255);
}
留言列表