本文主要是介绍[leetcode]经典算法题- String to Integer (atoi),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
把字符串转化为整数值
原文描述:
Implement atoi to convert a string to an integer.
Hint:
Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes:
It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
思路分析:
- 首先判断为空,返回0
- 考虑前面是空格,使用trim()去掉,然后判断长度是否为0,是的话,返回0
- 判断第一个字符是不是+和-,设置变量sign记录。
- 循环取得字符串的数字,考虑字符串中有非数字,遇到就退出,保留前面的数字
- 考虑溢出的情况,溢出返回Integer的最大值和最小值
代码实现:
public class Solution {public int myAtoi(String str) {//首先判断空值if(str == null){return 0;}//去掉空格的情况str = str.trim();if(str.length() == 0){return 0;}int sign = 1;int index = 0;if(str.charAt(index) == '+'){index++;}else if(str.charAt(index) == '-'){index++;sign = -1;}//取得数字部分,遇到溢出和非数字退出long number = 0;for(;index < str.length();index++){if(str.charAt(index) < '0' || str.charAt(index) > '9'){break;}number = number *10 + (str.charAt(index) - '0');if(number >= Integer.MAX_VALUE){break;}}if(number * sign >= Integer.MAX_VALUE){return Integer.MAX_VALUE;}if(number * sign <= Integer.MIN_VALUE){return Integer.MIN_VALUE;}return (int)number*sign;}
}
这篇关于[leetcode]经典算法题- String to Integer (atoi)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!