1.子串模糊匹配
var readline=require("readline");
rl=readline.createInterface({
input:process.stdin,
output:process.stdout
})
var k=2;
var inputs=[];
rl.on("line",function(data){
inputs.push(data);
if(k==inputs.length){
var a=inputs[0];
var b=inputs[1];
var result=main(a,b);
console.log(result);
}
})
function main(a,b){
var reg=b.replace(/\?/g,"[a-z]{1,3}");
var pattern=new RegExp("^"+reg);
if(pattern.test(a)){
var mat=pattern.exec(a);
var val=(mat[0].length);
return val;
}
else{
return -1;
}
}
2.长方体摆放
//设dp[i][j]为第i层,高度为j的方案数,那么第i+1层的高度为j+x j+y j+z的方案数都等于第i层的方案数,所以可以得出递推式为:
//dp[i+1][j+x]+=dp[i][j]
//dp[i+1][j+y]+=dp[i][j]
//dp[i+1][j+z]+=dp[i][j]
//再把高度为n的方案数加起来得出总和即可。
//为什么会有加号是因为有可能通过其他的方案已经得到了再加上自己的方案。
var readline=require("readline");
rl=readline.createInterface({
input:process.stdin,
output:process.stdout
})
var k=2;
var inputs=[];
rl.on("line",function(data){
inputs.push(data);
if(k==inputs.length){
var n=inputs[0];
var nums=inputs[1].split(" ");
var result=main(nums,n);
console.log(result