【leetcode】8. 字符串转换整数 (atoi)(Java)
2021/10/28 17:09:53
本文主要是介绍【leetcode】8. 字符串转换整数 (atoi)(Java),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题目描述
题目链接:8. 字符串转换整数 (atoi).
题解
从前向后遍历字符串,依次做以下的操作
1、去掉前面的空格
2、判断是否有正负号,如果有负号,flag == 1
3、判断下一位是不是数字,如果是数字,更新res,如果不是数字,直接返回res
4、更新res之后要判断res是否越界。
可以通过:用last记录上一次的res,更新res之后用res/10 == last
来判断是否越界
详见代码注释
class Solution { public int myAtoi(String s) { //用来标记是否为负数 int flag = 0; char[] c = s.toCharArray(); //res记录答案,last用来判断是否越界 int res = 0, last = 0; //count用来记录遍历到哪一位 int count = 0; //1、去掉前面的空格 while (count < c.length){ if (c[count] == ' ') count++; else break; } //2、查看是否有正负号 if (count < c.length && c[count] == '-'){ flag = 1; count++; }else if (count < c.length && c[count] == '+'){ count++; } //3、处理数字 while (count < c.length){ //如果是数字,更新res if (c[count] >= '0' && c[count] <= '9'){ last = res; res = res * 10 + (c[count] - '0'); //当res / 10 != last,证明res越界了,根据正负号,返回最大或最小值 if (res / 10 != last){ return flag == 1 ? Integer.MIN_VALUE : Integer.MAX_VALUE; } }else break;//如果不是数字,跳出循环 count++; } //根据正负号返回结果 return flag == 1 ? -res : res; } }
这篇关于【leetcode】8. 字符串转换整数 (atoi)(Java)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求