
LeetCode shell 题解(全)
使用 对处理后的文本进行排序,默认的ASCII值排序可以满足简单的升序需求。 利用 最后再次进行逆序排序( 使用
使用 过滤后的号码可以直接输出到标准输出。
使用 初始行(第一行)被单独处理,后续行与之前行拼接,形成新行的内容。 最终输出转置后的文件内容。
发布日期:2025-04-05 01:35:49
浏览次数:10
分类:精选文章
本文共 1323 字,大约阅读时间需要 4 分钟。
LeetCode Shell练习题集合解析:从基础到实战
作为一名从事软件开发的程序员,Shell脚本无疑是必备的技能。LeetCode平台提供的四个Shell练习题目虽然数量不多,但涉及到的知识点却相当丰富,涵盖tr、grep、awk、sed等工具的使用,这不仅是对基础能力的考验,更是对日常工作思维的一种训练。尝试解读并执行这些题目,对熟悉Shell编程的新手来说既是挑战,又是提升的绝佳机会。
以下是对LeetCode上各个Shell练习题目的解析与解决方案:
LeetCode 192. 统计词频
问题描述:需要统计并显示一个文本文件中各单词的频率,按从大到小排序。
解决思路:
tr
工具来将文本中的空格替换为换行符,保证每个单词占一行。uniq
命令去重,并添加-c
参数,来输出每个单词出现的次数。sort -r
),以获取从高到低的频率顺序。awk
工具进行格式化输出,将单词和对应的次数组合显示。命令示例:
cat words.txt | tr -s ' ' '\n' | sort | uniq -c | sort -r | awk '{print $2 " " $1}'
LeetCode 193. 有效电话号码
问题描述:从文本文件中筛选出有效的电话号码,格式为(123) 123-4567 或 123-4567。
解决思路:
grep
命令匹配指定的电话号码格式,正则表达式^(\d{3}-\d{3}-\d{4})$|^(\(\d{3}\) \d{3}-\d{4})$
用来过滤有效号码。命令示例:
cat file.txt | grep -P '^(\d{3}-\d{3}-\d{4})$|^(\(\d{3}\) \d{3}-\d{4})$'
LeetCode 194. 转置文件
问题描述:将文件的行和列转置。
解决思路:
awk
工具遍历文件内容,将所有行存储到数组res
中。命令示例:
cat file.txt | awk '{for(i=1; i<=NF; i++) {if (NR==1) res[i]=$i; else res[i]=res[i]" "$i}} END {for (i=1; i<=NF; i++) print res[i]}'
LeetCode 195. 第十行
问题描述:输出文件中第十行内容。
解决思路:1.Directly使用awk
工具查找第10行。
命令示例:
awk 'NR == 10' file.txt
LeetCode Shell练习的价值
Shell编程作为一种灵活而强大的工具,在日常开发工作中频繁被用到。通过参与LeetCode上的Shell练习题,我们可以快速掌握常用的工具链,比如grep
、awk
、sort
等,同时培养解题思维和脚本化解决问题的能力。对于想要提升代码效率的程序员来说,这些练习题无疑提供了一个绝佳的平台。
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月15日 03时23分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP系列:PHP 基础编程 2(时间函数、数组---实现登录&注册&修改)
2025-03-28
PHP系列:使用PHP实现登录注册功能的完整指南
2025-03-28
"WARNING: Increasing RAM size to 1GB" and "Cannot set up guest memory 'xxx.ram': Invalid argument".
2025-03-28
04-docker-commit构建自定义镜像
2025-03-28
05-docker系列-使用dockerfile构建镜像
2025-03-28
09-docker系列-docker网络你了解多少(下)
2025-03-28
#C8# UVM中的factory机制 #S8.2.3# 重载sequence哪些情形
2025-03-29
cytoscape安装java_Cytoscape史上最全攻略
2025-03-29
c语言编写单片机中断,C语言AVR单片机中断程序写法
2025-03-29
java教学团队管理系统(ssm)
2025-03-29
java教师管理系统(ssm)
2025-03-29
java教师课堂助手app(ssm)
2025-03-29
java教育辅导班信息网(ssm)
2025-03-29
DDNS动态域名无固定IPSEC配置实战
2025-03-29
DELL笔记本UEFI+GPT安装window10与Ubuntu双系统
2025-03-29
EasyUi的使用与代码编写(一)
2025-03-29
Ehcache Java开源缓存框架
2025-03-29
el-select下拉框修改背景色
2025-03-29
ElasticSearch - 基于 JavaRestClient 操作索引库和文档
2025-03-29