关键词:
192. 统计词频
❤️ 原题 ❤️
写一个 bash 脚本以统计一个文本文件 words.txt
中每个单词出现的频率。
为了简单起见,你可以假设:
words.txt
只包括小写字母和' '
。- 每个单词只由小写字母组成。
- 单词间由一个或多个空格字符分隔。
示例:
假设 words.txt
内容如下:
the day is sunny the the
the sunny is is
你的脚本应当输出(以词频降序排列):
the 4
is 3
sunny 2
day 1
说明:
- 不要担心词频相同的单词的排序问题,每个单词出现的频率都是唯一的。
- 你可以使用一行
Unix pipes
实现吗?
⭐️ 解题思路 ⭐️
注意几个关键词:词频降序排列、统计每个单词出现次数、使用一行命令实现。
① 使用 xargs
将所有行转为单列显示:
cat words.txt | xargs -n1
② 使用 sort + uniq
函数进行排列:
sort -nr
表示依照数值的大小降序排序。uniq -c
表示在每列旁边显示该行重复出现的次数。
cat words.txt | xargs -n1 | sort | uniq -c | sort -nr
③ 使用 awk + print
函数将 1、2 列位置互换:
cat words.txt | xargs -n 1 | sort | uniq -c | sort -nr | awk 'print $2" "$1'
至此,本题已解。
去 LeetCode 执行一下看看结果吧:
❄️ 写在最后 ❄️
本题依然是使用 Linux 的一些基础命令:xargs
、sort
、uniq
、awk
,基础很重要!
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
⭐️leetcode解题系列⭐️175.组合两个表(oracle简单的左右连接)(代码片段)
175.组合两个表❤️原题❤️⭐️解题思路⭐️❄️写在最后❄️❤️原题❤️表1:Person+-------------+---------+|列名|类型|+-------------+---------+|PersonId|int||FirstName|varchar||LastName|varchar|+-------------+ 查看详情
⭐️leetcode解题系列⭐️175.组合两个表(oracle简单的左右连接)(代码片段)
175.组合两个表❤️原题❤️⭐️解题思路⭐️❄️写在最后❄️❤️原题❤️表1:Person+-------------+---------+|列名|类型|+-------------+---------+|PersonId|int||FirstName|varchar||LastName|varchar|+-------------+ 查看详情
⭐️leetcode解题系列⭐️194.转置文件(shell)(代码片段)
194.转置文件❤️原题❤️☀️解题思路☀️分析xargs多行变单行awk+print打印列head+wc获取列数❄️写在最后❄️❤️原题❤️给定一个文件file.txt,转置它的内容。你可以假设每行列数相同,并且每个字段由''... 查看详情
⭐️leetcode解题系列⭐️194.转置文件(shell)(代码片段)
194.转置文件❤️原题❤️☀️解题思路☀️分析xargs多行变单行awk+print打印列head+wc获取列数❄️写在最后❄️❤️原题❤️给定一个文件file.txt,转置它的内容。你可以假设每行列数相同,并且每个字段由''... 查看详情
⭐️leetcode解题系列⭐️178.分数排名(oracledense_rank函数)(代码片段)
178.分数排名❤️原题❤️⭐️解题思路⭐️☀️解题答案☀️❄️写在最后❄️❤️原题❤️编写一个SQL查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应... 查看详情
⭐️leetcode解题系列⭐️178.分数排名(oracledense_rank函数)(代码片段)
178.分数排名❤️原题❤️⭐️解题思路⭐️☀️解题答案☀️❄️写在最后❄️❤️原题❤️编写一个SQL查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应... 查看详情
⭐️leetcode解题系列⭐️1179.重新格式化部门表(oraclepivot行转列函数)(代码片段)
1179.重新格式化部门表❤️原题❤️☀️解题思路☀️Pivot函数简介创建测试表Department插入测试数据执行Pivot行转列函数❄️写在最后❤️原题❤️部门表Department:+---------------+---------+|ColumnName|Type|+---------------+... 查看详情
⭐️leetcode解题系列⭐️1179.重新格式化部门表(oraclepivot行转列函数)(代码片段)
1179.重新格式化部门表❤️原题❤️☀️解题思路☀️Pivot函数简介创建测试表Department插入测试数据执行Pivot行转列函数❄️写在最后❤️原题❤️部门表Department:+---------------+---------+|ColumnName|Type|+---------------+... 查看详情
⭐️leetcode解题系列⭐️177.第n高的薪水(oracledense_rank函数)(代码片段)
177.第N高的薪水❤️原题❤️⭐️解题思路⭐️❄️写在最后❄️❤️原题❤️编写一个SQL查询,获取Employee表中第n高的薪水(Salary)。+----+--------+|Id|Salary|+----+--------+|1|100||2|200||3|300|+----+---- 查看详情
⭐️leetcode解题系列⭐️177.第n高的薪水(oracledense_rank函数)(代码片段)
177.第N高的薪水❤️原题❤️⭐️解题思路⭐️❄️写在最后❄️❤️原题❤️编写一个SQL查询,获取Employee表中第n高的薪水(Salary)。+----+--------+|Id|Salary|+----+--------+|1|100||2|200||3|300|+----+---- 查看详情
⭐️leetcode解题系列⭐️185.部门工资前三高的所有员工(oracledense_rank函数)(代码片段)
185.部门工资前三高的所有员工❤️原题❤️⭐️解题思路⭐️构建测试数据❤️开始解题❄️写在最后❄️❤️原题❤️Employee表包含所有员工信息,每个员工有其对应的工号Id,姓名Name,工资Salary和部门编号Departmen... 查看详情
⭐️leetcode解题系列⭐️185.部门工资前三高的所有员工(oracledense_rank函数)(代码片段)
185.部门工资前三高的所有员工❤️原题❤️⭐️解题思路⭐️构建测试数据❤️开始解题❄️写在最后❄️❤️原题❤️Employee表包含所有员工信息,每个员工有其对应的工号Id,姓名Name,工资Salary和部门编号Departmen... 查看详情
⭐️leetcode解题系列⭐️176.第二高的薪水(oracledense_rank和max)(代码片段)
176.第二高的薪水❤️原题❤️⭐️解题思路⭐️思路一思路二❄️写在最后❄️❤️原题❤️编写一个SQL查询,获取Employee表中第二高的薪水(Salary)。+----+--------+|Id|Salary|+----+--------+|1|100||2|200||3|30... 查看详情
⭐️leetcode解题系列⭐️176.第二高的薪水(oracledense_rank和max)(代码片段)
176.第二高的薪水❤️原题❤️⭐️解题思路⭐️思路一思路二❄️写在最后❄️❤️原题❤️编写一个SQL查询,获取Employee表中第二高的薪水(Salary)。+----+--------+|Id|Salary|+----+--------+|1|100||2|200||3|30... 查看详情
☀️~爆肝万字总结递归~❤️玩转算法系列之我如何才能掌握递归解题的能力❤️~十大经典问题助你突破极限~☀️(代码片段)
🍅作者主页:Roninaxious🍅欢迎点赞👍收藏⭐留言📝🚢前言🎐何为递归递归顾名思义就是´递´和´归´👀所谓的‘递’也就是“向下递去”,这个问题可以分解为若干个且形式相同的子问题... 查看详情
小y学算法⚡️每日leetcode打卡⚡️——1.两数之和(代码片段)
目录📢引言🌲原题样例🌞解题思路🌻C#方法一:暴力法🌻C#方法二:哈希🎋Java方法一:暴力枚举🎋Java方法二:哈希表💬总结📢引言🌻🌻🌻🌻 查看详情
小y学算法⚡️每日leetcode打卡⚡️——2.两数相加(代码片段)
📢前言🌲原题样例🌞解题思路🌻C#方法🎋Java方法:模拟💬总结📢前言🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻🌻 查看详情
❤️互联网大厂面试高频算法题汇总❤️——❤️二分专场❤️(代码片段)
...题目汇总3、二分模板4、二分流程5、二分高频题详解5.1、LeetCode33.搜索旋转排序数组5.2、LeetCode704.二分查找5.3、LeetCode69.x的平方根5.4、LeetCode4.寻找两个正序数组的中位数5.5、LeetCode153.寻找旋转排序数组中的最小值5.6、LeetCode162.寻... 查看详情