当前位置: 首页 > news >正文

力扣刷题学习心得

最近在刷力扣题目的过程中,我对不同编程语言之间的差异有了更加深刻的体会。以前我一直使用Python刷题,因为Python语法简单、库函数丰富,所以很多时候我都会优先选择“最简单、最直接”的思路来解决问题。但是当我尝试用Java重新实现同一道题时,我才真正意识到不同语言在编程思维上的区别,也让我对Java有了新的认识。
这次练习的题目是关于“特殊字母”的判断。题目要求判断一个字符串中某个字母的小写形式是否全部出现在对应大写形式之前,如果满足条件,则称其为特殊字母,最后统计特殊字母的数量。
一开始我使用Python完成这道题时,整体思路比较直接。我利用了Python中很多方便的语法和库函数,例如:
(一)list()快速转换字符数组
(二)[::-1]直接反转列表
(三)index()快速查找位置
(四)in关键字判断字符是否存在
因此整个代码虽然逻辑不算特别优秀,但实现起来非常轻松。我更多关注的是“如何快速解决问题”,而不是底层实现。
例如下面这些Python写法:
python
ts = st[::-1]
只需要一行代码就能完成数组反转。
再比如:
python
chr(x) not in st
就可以直接判断字符是否存在。
这种写法让我感觉Python对刷题非常友好,可以把更多精力放在思路本身,而不是语法细节上。
dfad3c18581644e262705125cc189afd
但是当我尝试使用Java重新实现同样逻辑时,难度明显提高了。
在Java中,我不能像Python一样直接使用很多简洁操作。例如:
(一)不能直接反转数组
(二)没有类似in这样的语法
(三)字符查找需要自己编写方法
(四)字符串与字符数组转换更加繁琐
因此,我不得不自己实现:
java
private boolean contains(char[] arr, char target)
以及:
java
private int indexOf(char[] arr, char target)
甚至连数组反转都需要手动编写循环:
for(int i = 0; i < st.length; i++){
ts[i] = st[st.length - 1 - i];
}
在这个过程中,我明显感觉到Java更加注重底层逻辑和代码实现能力。Python很多看起来“理所当然”的操作,在Java中其实都需要程序员自己去实现。
刚开始我会觉得Java写起来特别麻烦,同样一道题,代码量几乎翻了一倍。但是后来我慢慢意识到,这种“麻烦”其实也是一种锻炼。
image
因为在Java中,很多操作不能依赖现成语法糖,所以我必须真正理解:
(一)数组是如何遍历的
(二)查找过程是如何实现的
(三)字符之间如何转换
(四)底层逻辑到底是什么
这让我开始更加关注程序运行的本质,而不仅仅是“把题做出来”。
通过这次刷题经历,我最大的感受是:
Python更像是一种“高效率解决问题”的语言,而Java更像是一种“训练编程基础和工程思维”的语言。
Python能够帮助我快速验证思路,提高做题效率;而Java则让我更加理解数据结构、循环逻辑以及程序底层实现。
同时,我也认识到自己目前还有很多不足。例如,我在Python中容易依赖库函数,一旦换成Java,就会发现自己对很多基础操作并不熟悉。这说明我过去更多是在“调用工具”,而不是完全理解实现过程。
因此,我认为以后刷题时不能只追求“做出来”,还应该思考:
(一)如果不用库函数该怎么实现
(二)时间复杂度是多少
(三)有没有更好的数据结构
(四)不同语言之间实现方式有什么区别
作为软件工程专业的学生,我觉得这种跨语言练习非常有意义。虽然Java写起来更复杂,但它确实帮助我提高了逻辑思维能力,也让我更加理解程序设计的本质。
今后我会继续坚持刷题,同时尝试用不同语言实现同一道题,不断提升自己的算法能力和编程水平,为以后学习更复杂的软件开发知识打下基础。

http://www.jsqmd.com/news/899715/

相关文章:

  • 通宵改论文怕延毕?2026年4款降AI软件实测,AI痕迹一键去
  • 从三角网格到完美四边形:QRemeshify让你的Blender模型重获新生 [特殊字符]
  • 全球 ELISA 试剂盒实力厂商全解析|科研选型必看干货
  • 2026 年南京 GEO 优化服务商实力榜单:五大品牌区域服务能力权威评估 - GEO优化
  • JEI投稿实战:从“大修”到“录用”的36天关键操作指南
  • 从入门到精通:大学生高含金量竞赛全攻略与时间线梳理
  • 基于GCN-GRU的LEO卫星信道预测:利用多用户空间相关性对抗信道老化
  • 起伏地形下车式机器人编队控制及路径规划技术【附代码】
  • 2026年开炼机厂家推荐榜单:实验型/生产型6寸/9寸/12寸/14寸/16寸/18寸/22寸开炼机品牌实力深度解析与选购指南 - 品牌企业推荐师(官方)
  • 手机和电脑怎么传文件?从 TCP 到 UDP,手写一个 Android Socket 聊天 App(附完整代码)
  • GitHub Copilot CLI 接入 Azure AI Foundry 私有云端模型实战指南
  • 从化区搬家公司电话 理赔流程拆解:普通人一看就懂 - 从来都是英雄出少年
  • 从传播路径看日出龙舌兰的记忆点
  • 2026 上海五大 GEO 优化服务商实力排行与测评 - GEO优化
  • CAXA 尺寸标注编辑 —— 公差配合
  • 从抓包到脚本:一个真实物联网设备TCP通信的JMeter测试案例复盘
  • 【ChatGPT投资避坑指南】:92%散户踩中的5大认知误区、3个被严重高估的“伪AI标的”及替代性配置方案
  • 广州从化区搬家公司推荐 办公室搬迁流程混乱实用维权指南 - 从来都是英雄出少年
  • 2026 全球主流 GEO 优化服务商综合实力盘点 - GEO优化
  • Mac小白必看:用Easy App Locker给微信、相册加把锁,再也不怕别人借电脑了
  • SMCBF:融合滑模控制与屏障函数,打造鲁棒自动驾驶安全控制
  • 别再手动导数据了!用Kettle Spoon 9.0零代码搞定MySQL到PostgreSQL的定时同步
  • STM32MP157实战:手把手教你搞定USB OTG驱动,让开发板变身U盘和声卡
  • 豆瓣影评人内部培训材料首次外泄:ChatGPT辅助写作的5级可信度分级标准与3种人工签名增强技术
  • CLAD:基于OpenCL的并行自动微分库,加速大规模光束法平差
  • 2026 年成都 GEO 优化服务商实力榜单:五大品牌区域服务能力权威评估 - GEO优化
  • 好用的AI论文网站推荐(2026最新版)
  • 从游戏角色移动到UI布局:定比分点公式在Unity/Cocos开发中的实战应用
  • STM32+ESP8266 MQTT实战:从传感器到OneNet物联网平台的数据上云之旅
  • 深度解析:基于Cocos2d-x的植物大战僵尸重制版架构设计与实现