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

8. 字符串转换整数 (atoi)

目录

题目链接:

题目:

解题思路:

代码:

总结:


题目链接:

8. 字符串转换整数 (atoi) - 力扣(LeetCode)

题目:

解题思路:

先将字符串转换成字符数组,空格遍历掉,然后遍历正负号,然后遍历累加即可,若遇到非数字直接停止另外在累加的过程中,需要判断是否越界,若越界直接返回int类型的边界即可(如果res大于最大值/10或者小于最小值)直接返回,(或者res==最大值/10并且下一位大于极值的末尾)直接返回

代码:

class Solution {public int myAtoi(String m) {int n=m.length();int idx=0;char[] s=m.toCharArray();while(idx<n&&s[idx]==' '){idx++;}if(idx==n){return 0;}int flag=1;char signal=s[idx];if(signal=='-'){flag=-flag;idx++;}else if(signal=='+'){idx++;}int res=0;while(idx<n){char x=s[idx];if(x<'0'||x>'9'){break;}if(res>Integer.MAX_VALUE/10||res==Integer.MAX_VALUE/10&&((x-'0')>Integer.MAX_VALUE%10)) return Integer.MAX_VALUE;if(res<Integer.MIN_VALUE/10||res==Integer.MIN_VALUE/10&&(x-'0')>-(Integer.MIN_VALUE%10)) return Integer.MIN_VALUE;res=res*10+flag*(x-'0');idx++;}return res;}
}


总结:

本文介绍了字符串转换整数(atoi)的解题方法。主要思路是:先处理前置空格,然后判断正负号,接着遍历数字字符进行转换,同时处理溢出情况。关键点在于:1)跳过前导空格;2)处理正负号;3)逐位转换时检查是否超出32位整数范围(当当前结果大于MAX_VALUE/10或等于MAX_VALUE/10且下一位数字大于MAX_VALUE%10时返回边界值)。该方法通过字符数组遍历实现,时间复杂度O(n),空间复杂度O(n)。

http://www.dtcms.com/a/320126.html

相关文章:

  • 大模型LL04 微调prompt-Tuning方法入门(背景与发展)
  • 【自动驾驶】《Sparse4Dv3》代码学习笔记
  • Redis的五个基本类型(2)
  • 单页面应用(SPA)和多页面应用(MPA)
  • RP2040下的I2S Slave Out,PIO状态机(三)
  • pybind11 的应用
  • (Python)Python爬虫入门教程:从零开始学习网页抓取(爬虫教学)(Python教学)
  • 腾讯iOA技术指南:实现数据防泄漏与高级威胁防护
  • Spark Memory 内存设计的核心组件、对比Flink内存配置
  • langchain入门笔记02:几个实际应用
  • 生信分析进阶16 - 可准确有效地检测血浆 ccf-mtDNA 突变的分析方法
  • DrissionPage实战案例:小红书旅游数据爬取
  • 串口转ADC/PWM 串口转I2C 串口转GPIO工具
  • c++20--std::format
  • 工业相机使用 YOLOv8深度学习模型 及 OpenCV 实现目标检测简单介绍
  • 计算机视觉CS231n学习(4)
  • jmeter要如何做接口测试?
  • python源码是如何运行起来的
  • HTTPS是如何确保网站安全性的?
  • 【Apache Olingo】全面深入分析报告-OData
  • 使用Ollama本地部署DeepSeek、GPT等大模型
  • C++模拟法超超超详细指南
  • 连续最高天数的销售额(动态规划)
  • 如何让keil编译生成bin文件与反汇编文件?
  • 机器学习:线性回归
  • Win10桌面从默认C盘改到D盘
  • 小红书开源多模态视觉语言模型DOTS-VLM1
  • 深入剖析React框架原理:从虚拟DOM到Fiber架构
  • PCA9541调试记录
  • 软考中级【网络工程师】第6版教材 第2章 数据通信基础(下)