一道简单的编程题,但是就是通不过,求解!!

牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。
输入描述:
每个输入包含一个测试用例。每个测试用例包含两行长度不超过 10 的不包含空格的可见 ASCII 字符串。
输出描述:
输出一行 “Yes” 或者 “No” 表示结果。
输入例子:
x.nowcoder.com
ooo
输出例子:
Yes

下面是我用js实现的代码
function yesOrNo(str1,str2){
    for(var i=0,j=0;i<str1.length;i++){
        if(str1.charAt(i)==str2.charAt(j)){
            j++;
            if(j==str2.length){
                return "yes";
            }
        }
    }
    return "no";
}

process.stdin.resume();
process.stdin.setEncoding("ascii");
 
var input = "";
 
process.stdin.on("data", function (chunk) {
    input+=chunk;
});
 
process.stdin.on("end", function () {
     
    input_array = input.split("\n");
    var nLine = 0;
 
    while(nLine < input_array.length){
        var line1 = input_array[nLine++].trim();
        var line2 = input_array[nLine++].trim();
        if(line1 === ''||line2=== ''){
            continue;
        }
        var result = yesOrNo(line1,line2);
        console.log(result);
    }
});
报错如下:


nodejs的标准输入输出不是这么用吗?已经处理多个case的情况啦




全部评论
function yesOrNo(str1,str2){     for(var i=0,j=0;i<str1.length;i++){         if(str1.charAt(i)==str2.charAt(j)){             j++;             if(j==str2.length){                 return "Yes";             }         }     }     return "No"; } process.stdin.resume(); process.stdin.setEncoding("ascii");   var input = "";   process.stdin.on("data", function (chunk) {     input+=chunk; });   process.stdin.on("end", function () {           input_array = input.split("\n");     var nLine = 0;       while(nLine+1 < input_array.length){         var line1 = input_array[nLine++].trim();         var line2 = input_array[nLine++].trim();         if(line1 === ''||line2=== ''){             continue;         }         var result = yesOrNo(line1,line2);         console.log(result);     } });
点赞 回复
分享
发布于 2016-09-10 18:54
while(nLine < input_array.length){ var line1 = input_array[nLine++].trim(); var line2 = input_array[nLine++].trim(); 可能是第二个nLine++已经超出了数组范围
点赞 回复
分享
发布于 2016-09-10 17:36
滴滴
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务