从零开始积累的javascript算法面试题

1.计算一个字符串中出现重复字符的个数(不区分大小写)?

function duplicateCount (text) {
    return (text.toLowerCase().split('').sort().join('').match(/(.)\1+/g) || []).length
  }

2.已知DNA是双链结构,由4种碱基对构成,A和T互相配对,C和G互相配对,若有任意一条DNA单链,求配对的单链?

function DNAResolve (dna) {
	return dna.replace(/(A|T|C|G)/gi, function($1){
		return {
			A: 'T',
			T: 'A',
			C: 'G',
			G: 'C'
		}[$1]
	})
}

3.写一个将字符串转驼峰式的函数

function camelCase (str) {
  return str.split(' ').map(v => v.replace(/\b(\w)/g, function (fl) {
    return fl.toUpperCase()
  })).join('')
}
camelCase('hello world') // 'HelloWorld'

4.求泰波那契数列

已知斐波那契数列规律为[1, 1, 2, 3, 5…], 而泰波那契数列是从第4个元素开始,后面每个元素都是前3个元素之和,请写一个有2个参数的函数,参数1是初始化数组,参数2是该函数返回泰波那契数组的长度,返回值是泰波那契数列。

function tribonacci(signature,n){
  for (var i = 0; i < n-3; i++) {
    signature.push(signature[i] + signature[i+1] + signature[i+2]); 
  }
  return signature.slice(0, n); 
}
  tribonacci([1,1,1],1) // [1]
  tribonacci([0,2,7],2) // [0, 2]
  tribonacci([1,1,1],10) // [1,1,1,3,5,9,17,31,57,105]

5.请写出一个判断质数的函数,返回布尔值

function isPrime(num) {
  for (let i = 2; i < num; i++) {
	if (num % 2 === 0) {
		return false
	}
  }
  return num >= 2
}

相关博客

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值