LeetCode: 192. Word Frequency

LeetCode: 192. Word Frequency

题目描述

Write a bash script to calculate the frequency of each word in a text file words.txt.

For simplicity sake, you may assume:

words.txt contains only lowercase characters and space ' ' characters.
Each word must consist of lowercase characters only.
Words are separated by one or more whitespace characters.

Example:

Assume that words.txt has the following content:

the day is sunny the the
the sunny is is

Your script should output the following, sorted by descending frequency:

the 4
is 3
sunny 2
day 1

Note:

Don't worry about handling ties, it is guaranteed that each word's frequency count is unique.
Could you write it in one-line using Unix pipes?

解题思路

见代码。

AC 代码

# FYI:
# NF(awk): 字段数量
# -c, --count(uniq): 在每列旁边显示该行重复出现的次数
# -n, --numeric-sort(sort): compare according to string numerical value
# -r, --reverse(sort): reverse the result of comparisons

# 1. 获取单词列表
# 2. 对单词列表进行排序
# 3. 统计相同合并的单词
# 4. 根据单词列表出现次数排序
# 5. 调整输出顺序
awk '{for(i=1; i<= NF; ++i) print $i}' words.txt | sort | uniq -c | sort -nr | awk '{print$2, $1}'
全部评论

相关推荐

黑皮白袜臭脚体育生:春节刚过就开卷吗?哈基馆,你这家伙......
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务