前端Freecode camp

(四)FCC算法题Repeat a string repeat

2017-09-28  本文已影响24人  3bdb28916098

题目链接:Repeat a string repeat a string

要求:接受一个字符串str和数字num,返回一个重复了n次str的新字符串。

测试条件:

repeatStringNumTimes("*", 3) should return "***".

repeatStringNumTimes("abc", 3) should return "abcabcabc".

repeatStringNumTimes("abc", 4) should return "abcabcabcabc".

repeatStringNumTimes("abc", 1) should return "abc".

repeatStringNumTimes("*", 8) should return "********".

repeatStringNumTimes("abc", -2) should return "".

方法一、使用while循环

function repeatStringNumTimes(string, times) {

    var repeatedString = "";

    while (times > 0) {

         repeatedString += string;

         times--;

    }

    return repeatedString;

}

repeatStringNumTimes("abc", 3);

方法二、使用递归。

function repeatStringNumTimes(str, num) {

    if(num < 0){

        return '';

    }

    if(num === 1){

        return str + "";

    }

    else{

        return str + repeatStringNumTimes(str, num - 1);

    }

}

repeatStringNumTimes("abc", 3);

代码解释:

1、使用递归要注意base case,这里的base case就是小于0和等于1的情况;

方法三:使用新的String.prototype.repeat()

function repeatStringNumTimes(str, num) {

    return num > 0 ? str.repeat(num) : '';

}

repeatStringNumTimes("abc", 3);

代码解释:

1、repeat()构造并返回一个新字符串,该字符串包含被连接在一起的指定数量的字符串的副本。

2、此方法已添加到ECMAScript 2015规范中,并且可能尚未在所有JavaScript实现中可用,使用的时候记得查看mdn

上一篇下一篇

猜你喜欢

热点阅读