华为机试题体验(2)-计算某字符出现次数(较难)

已被阅读 553 次 | 文章分类: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号