题解 | #统计字符#

统计字符

https://www.nowcoder.com/practice/539054b4c33b4776bc350155f7abd8f5

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    // Write your code here
    let strs=""
    //判断是否为英文字符

    while(line = await readline()){
        //统计含有空格的字符串的分种类的字符个数:英文、空格、数字判断类型
        //map数据结构存储
        strs=[...line]
        // console.log(strs)
    }
    let m=new Map();
    let init=function(key){
        m.set(key,0)
    }
    init("e")
    init("blank")
    init("num")
    init("other")
    let setValue=function(key){
        if(!m.get(key))m.set(key,1)
                else{
                    let num=m.get(key)+1
                    m.set(key,num)
                }
    }
    let f1=function(str){
        // console.log("str",str[4]==" ")
        //使用正则判断
        for(let i=0;i<str.length;i++){
            let c=str[i]
            if(c==" "){
                // console.log("进来了")
                setValue("blank")
            }
            else if(c>='a'&&c<='z'||c>='A'&&c<='Z'){
                setValue("e")
                
            }else if(c>=0&&c<=9){
                setValue("num")
            }else{
                setValue("other")
            }
        }

    }
    f1(strs)
    console.log(m.get("e"))
    console.log(m.get("blank"))
    console.log(m.get("num"))
    console.log(m.get("other"))
}()

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务