js常见编程题整理(持续更新中)

1、

编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成。“组合 ”的规则如下:
1). str中的每个字母要么来自于part1,要么来自于part2;
2). part1和part2中字母的顺序与str中字母的顺序相同。
例如:
“codewars”由”cdw”和”oears”组合而成:
s: c o d e w a r s = codewars
part1: c d w = cdw
part2: o e a r s = oears

function toMerge(s,part1,part2) {

//convert into array to use shift function;
        var part1 = part1.split('');    
        var part2 = part2.split('');

        for(var i=0,l=s.length;iif(part1.indexOf(s[i])>-1){
                part1.shift();//remove the first element
            }else if(part2.indexOf(s[i])>-1){
                part2.shift();
            }else{
                return false;
            }
        }
        return true;
    }
    alert(toMerge('abcd','ac','bd'));

2、

小 S,小L,小P,小R和小H 五个人排队站在一个出售’克隆可乐’的自动贩卖机前 ; 队伍中除了他们五个没有其他人 。 队形如下 :
小 S,小L,小P,小R,小H
队列的第一个人 (小S)买了一听可乐,喝下去后变成了两个小S!然后两个小S心满意足的站到了队伍的最后。此时队形变成了这样:
小 L,小P,小R,小H,小S,小S
然后队列中下一个人 (小L)也买了听可乐,喝下去后变成两个人,站到了队伍最后。以此类推。例如小P第三个喝了克隆可乐,之后队伍变成这个样子:
小 R,小H,小S,小S,小L,小L,小P,小P
请问第 n个喝这个饮料的人是谁?

function drink(n){
    var arr=['s','l','p','r','h'],temp,count=0;
        while(count!=n){
            temp=arr.shift();
            count++;
            arr.push(temp);
            arr.push(temp);
        }
        return temp;
}
alert(drink(6));

你可能感兴趣的:(js常见编程题整理(持续更新中))