已被阅读 719 次 | 文章分类:javascript | 2022-02-13 21:15
在牛客网上看了下华为机试题,有入门、简单、中等、较难、困难等区分;其实这个区分依据也很简单,就是覆盖基础知识点的数量;难度低的可能只有一个知识点;随着难度上升,基础知识点的数量越多,综合考察就有难度了;所以如果有几个知识点缺失,可能就无法做出最后的结果;记录一下自己的笔记吧
1 考题描述
下面是考题描述:
// 描述
// 写出一个程序,接受一个由字母、数字和空格组成的字符串,和
// 一个字符,然后输出输入字符串中该字符的出现次数。(不区
// 分大小写字母)
// 数据范围:1≤n≤1000
// 输入描述:
// 第一行输入一个由字母和数字以及空格组成的字符串,第二行
// 输入一个字符。
// 输出描述:
// 输出输入字符串中含有该字符的个数。(不区分大小写字母)
// 示例1
// 输入:
// ABCabc
// A
// 输出:
// 2
2 考点解析
首先分析考题:里面有数字、字母、空格;所以我们要统计的情况有三种;首先肯定考到的点是数组遍历方法和===符号嘛;其次就是不同情况要考察的点
第一:如果是数字;将字符串转成数组后,字符串包含的数字也会变成字符;所以要和输入的数字做判断,需要将转换后的字符利用Number方法转换一下;那么考点就是Number()方法
第二:如果是字符;从题干中看到不管输入的是小写还是大写字母,结果需要将该字母出现的大写和小写状态都统计出来;所以这里出现两个考点:
一个是判断输入字符大小写c<'A'||c>'Z';比如判断字符是否大写可以用如下方式
c<'A'||c>'Z'
另一个就是将字符串全部转换为大写或者小写的方法toLocaleLowerCase和toLocaleUpperCase;如下
str=str.toLocaleLowerCase()
str=str.toLocaleUpperCase()
第三:如果是空格;空格不用特意处理,直接遍历判断是否相等即可
3 全部代码
测试地址:计算某字符出现次数
function calPos(str,c){
let count=0;
let strArr=[];
if(Number(c)){
strArr=str.split('');
strArr.forEach((item)=>{
if(Number(item)===c){
count++
}
})
}else{
if(c<'A'||c>'Z'){
str=str.toLocaleLowerCase()
}else{
str=str.toLocaleUpperCase()
}
strArr=str.split('');
strArr.forEach((item)=>{
if(item===c){
count++
}
})
}
return count;
}
console.log(calPos('AB11Cabc',"A"));
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号