美文网首页前端Freecode camp
(四)FCC算法题Repeat a string repeat

(四)FCC算法题Repeat a string repeat

作者: 3bdb28916098 | 来源:发表于2017-09-28 08:11 被阅读24次

    题目链接: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

    相关文章

      网友评论

        本文标题:(四)FCC算法题Repeat a string repeat

        本文链接:https://www.haomeiwen.com/subject/ybfmextx.html