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

统计每个单词出现的个数

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

#!/bin/bash

set -e

content=$(sed "s/\n/ /g" nowcoder.txt)
# echo $content
declare -A data
for i in $content;do
if test -z ${data["$i"]};then
data["$i"]=1
else
data["$i"]=$(echo "${data["$i"]} + 1" | bc)
fi
done

# 排序
arr=()
for i in ${!data[@]}
do
j=${data[$i]}
arr+=("$i $j")
done

# for i in range(len(list1)):
#     for j in range(i, len(list1)):
#         if list1[i] > list1[j]:
#             list1[i], list1[j] = list1[j], list1[i]
length=${#arr[@]}
# 冒泡排序
for (( i=0;i<length;i++ ));do
    for (( j=i;j<length;j++ ));do
        v1=$(echo ${arr[$i]} | awk '{print $2}')
        v2=$(echo ${arr[$j]} | awk '{print $2}')
        # echo "v1 == ${v1}, v2 == ${v2}"
        if [[ v1 -lt v2 ]];then
            # 交换位置
            temp=${arr[$i]}
            arr[i]=${arr[$j]}
            arr[j]=$temp
        fi
    done
done

index=${#arr[*]}
# echo $index
while [ $index -ge 0 ];do
let index--
printf "${arr[$index]}\n"
if [[ $index == 0 ]];then exit 0;fi
done

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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