题解 | #统计每个单词出现的个数#
统计每个单词出现的个数
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

