Leetcode8. 字符串转换整数 (简单模拟)
Posted !0 !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode8. 字符串转换整数 (简单模拟)相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode-cn.com/problems/string-to-integer-atoi/
解题思路
看到了官方题解使用的自动机(我太菜了,还没学到自动机),我来讲一下我的做法,就是简单模拟。直接看代码。
代码
class Solution {
public int myAtoi(String s) {
long ans = 0; //记录最终答案
int k = 0; //记录下标
while(k < s.length() && s.charAt(k) == ' ') //去掉前导空格
k++;
if(k == s.length()) //如果k已经到尾部直接返回0,排除字符串都是空格的情况
return 0;
int m = 1; //符号位,默认为正
if(s.charAt(k) == '-') { //如果符号位为负数
m = -1;
k++;
}else if(s.charAt(k) == '+') { //符号位为正数
m = 1;
k++;
}
while (k < s.length() && s.charAt(k) >= '0' && s.charAt(k) <= '9') { //如果是数字则记录进答案
ans = ans * 10 + s.charAt(k++) - '0';
if(ans > Integer.MAX_VALUE || (m == -1 && -ans < Integer.MIN_VALUE))
break;
}
ans = ans * m; //加上符号位
if(ans > Integer.MAX_VALUE) //大于最大数
return Integer.MAX_VALUE;
if(ans < Integer.MIN_VALUE) //小于最小数
return Integer.MIN_VALUE;
return (int)ans; //返回
}
}
复杂度分析
- 时间复杂度:O(n)
- 空间复杂度:O(1)
以上是关于Leetcode8. 字符串转换整数 (简单模拟)的主要内容,如果未能解决你的问题,请参考以下文章
每日算法/刷穿 LeetCode8. 字符串转换整数 (atoi) (中等)
leetcode-7 整数反转&&leetcode8 字符串转换整数
leetcode-7 整数反转&&leetcode8 字符串转换整数