查找文章中出现频率最高的单词、实现斐波那契数列

1 查找文章中出现频率最高的单词

let article = "This is a test. This test is only a test.";

function findMostWord(article) {
    if (!article) return;
    let lower = article.trim().toLowerCase();
    let text = lower.match(/[a-z]+/g);
    article = ' ' + text.join(' ') + ' ';
    let visit = [];
    let maxNum = 0;
    let maxWord = '';
    text.forEach(item => {
        if (visit.indexOf(item) < 0) {
            visit.push(item);
            let reg = new RegExp(' ' + item + ' ', 'g');
            let res = article.match(reg).length;
            if (res > maxNum) {
                maxNum = res;
                maxWord = item;
            }
        }
    });
    return maxWord;
}
console.log(findMostWord(article)); //test

2 实现斐波那契数列

求斐波那契数列的第n个数

  • 递归递推公式法
function fibonacci(n) {
    if (n == 1) return 1;
    if (n == 2) return 1;
    return fibonacci(n - 2) + fibonacci(n - 1);
}
console.log(fibonacci(8)); //21
  • 非递归数组法
function fibonacci(n) {
    let result = [1, 1];
    for (let i = 2; i < n; i++) {
        result.push(result[i - 1] + result[i - 2]);
    }
    return result[n - 1];
}
console.log(fibonacci(8)); //21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值