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

菜鸟心得001

LeetCode字符串简单题13:罗马数字转整数

思路:根据ds,本题用字典才是最简单最快的方法,但是由于本人还没学字典的用法,所以第一反应是用笨拙的逐字循环读取,根据已知条件计算求和。

问题和方案:

1.for循环不熟悉:for i in range(start,stop,step)stop和step写反了导致所有罗马数字只读取第一个数。

2.for i in range()因为两个罗马数字组合在一起可能有特殊的计算方式,所以我原本希望遇到这种特殊情况用一个elif分支单独判断完成后修改i的值跳过已经被考虑过的下一个数,但是由于range方法的特性,在实际执行过程中不管循环体内对i做了什么操作,执行下一次循环的时候还是执行i+1操作,导致计算结果和预期不同。所以这里我把for循环改成了while循环 while i < len(s),手动操作i的值规避这个问题。

3.如果一定要用for循环呢?我们可以再定义一个布尔变量,用来标记在处理该数字的时候下一个数字需不需要跳过,例如,如果该变量的值为TRUE,则直接continue,直接回到for循环,让for循环自动将i+1,实现跳过。

总结:在遍历的时候如果需要跳过元素,while循环远比for循环灵活;两个循环的时间复杂度都是O(n),空间复杂度都是O(1)

https://leetcode-cn.com/problems/roman-to-integer/

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

相关文章:

  • Intel Edison LCD屏光标控制:从HD44780原理到动态显示实战
  • 解密Midscene.js:如何用视觉AI重构UI自动化测试新范式
  • 开源与闭源AI模型之争:GPU厂商角色与开发者技术选型指南
  • 166、NPU的编译器开发:动态形状支持
  • 行空板OpenCV二维码识别:边缘计算环境部署与性能优化实战
  • 网页数据爬取实战指南:从基础工具到反爬策略
  • M4 Mac原生ARM环境搭建安卓抓包工作流:MUMU模拟器与Burp Suite配置指南
  • 全志ARM Linux内核编译指南:从交叉编译到SD卡启动全流程
  • 智能问答中的知识检索与答案生成
  • 普通电脑训练小型LLM:从数据准备到模型部署完整指南
  • 权重已到、Recipe 还在变:Kimi K3 发布后该怎样做工程验收
  • ROS通信机制详解:Topic、Service、Action对比与单片机集成实战
  • 智能论文写作工具如何提升学术效率与质量
  • 行空板K10与ESP32-C3联动:基于WLED的WS2812智能灯光控制方案
  • DC综合实战:从时序违例到面积优化,解决数字芯片设计核心难题
  • 基于Exif解析与人脸聚类的照片智能分类整理方案与实践
  • 国内直连免费AI工具GPT-5.6与GPT Image2实测指南
  • 前端AES加密实战:CryptoJS最佳实践与跨语言协同指南
  • 三星智能眼镜跨生态兼容iPhone:技术挑战与商业逻辑深度解析
  • 城市活动策划:从信息搬运到价值创造的底层逻辑与实践指南
  • (2026最新)贵阳本地人必选的靠谱漏水检测维修推荐:正规防水补漏防水-卫生间/厨房/屋顶/阳台/外墙渗漏水精准测漏,本地人的信赖之选 - 安佳防水
  • MakerBot应用门户:3D打印从硬件到开放生态的最后一公里
  • Python os模块深度解析:从文件操作到系统交互的实战指南
  • 基于Arduino与状态机的智能红绿灯系统设计与实现
  • 结构化Prompt设计指南:提升AI对话效果稳定性与可预测性
  • ROS语音交互实战:基于Vosk的离线语音控制机器人系统搭建
  • 桌面级智能装置实战:绘图机、陀螺钟与太阳能追踪器设计全解析
  • 433MHz无线数传模块在单片机毕业设计中的应用与实战指南
  • MATLAB实现BP神经网络预测:从原理到实战调参指南
  • 中学生STEM实践:用3D打印与Arduino自制红外温度计