题解 | #shell/bash统计每个单词出现的个数#

统计每个单词出现的个数

http://www.nowcoder.com/practice/ad921ccc0ba041ea93e9fb40bb0f2786

读取文件没一行,默认空格分割拆分成数组,遍历每个单词,
使其作为map的key,map的value为计数器,当获取某个key,没有值时value初始1,有值时自增1

declare -A map
function test3() {
    local temp=""
    local arr=""
    while read line; do
        arr=(${line})
        for ele in ${arr[@]}; do
            temp=${map[${ele}]}
            if [ -z "${temp}" ]; then
                map[${ele}]=1
            else
                # map[${ele}]=$[ ${temp} + 1 ]
                ((map[${ele}]++))
            fi
        done
    done < nowcoder.txt
}

function echoMap() {
    echo "keyList=${!map[@]}"
    echo "valueList=${map[@]}"
}

function foreach() {
    for ele in ${!map[@]}; do
        echo "${ele} ${map[${ele}]}"
    done
}

function processor() {
    test3
    temp=$(foreach)
    echo "${temp}" | sort -k2
}
processor
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
05-26 09:07
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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