前端面试题整理

1.判断一个字符串出现次数最多的字符以及出现的次数

var str ='absaadasjjjjjjjjjjjdhaksjdh123h123jh123123'
//用split把字符串分成数组
var arr=str.split('');
var json={};
//把对应字符作为对象的属性名:其个数作为对象的属性值
for (var key in arr){
  if(json[arr[key]]){
    json[arr[key]]+=1;
  }
  else{
    json[arr[key]]=1;
  }
}
//对对象进行遍历寻找哪个属性名里的属性值最大
var maxNumber=0;
var max='';
for (var key in json){
  if(json[key]>maxNumber)
    {
      max=key;
      maxNumber=json[key];
    }
}
console.log("最大的字符为:"+max+"其个数为:"+maxNumber)

2.求第n个丑数

function min(a,b,c){
  return a<b?(a<c?a:c):(b<c?b:c);
}
function chou(n){
  var arr=[1];
  var t2=0,t3=0,t5=0,temp2=0,temp3=0,temp5=0;
  var temp=0;
  while(arr.length<n)
    {
      temp2=arr[t2]*2;
      temp3=arr[t3]*3;
      temp5=arr[t5]*5;
      temp=min(temp2,temp3,temp5);
      arr.push(temp)
      if(temp>=temp2){t2++};
      if(temp>=temp3){t3++};
      if(temp>=temp5){t5++};
    }
  return arr[arr.length-1];
}
console.log(chou(20))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值