剑指 Offer 67. 把字符串转换成整数
Posted 易小顺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 67. 把字符串转换成整数相关的知识,希望对你有一定的参考价值。
算法记录
LeetCode 题目:
写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。
说明
一、题目
假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。
二、分析
- 就是一道针对字符串转整型数字的问题,不存在什么算法的难点,只要把边界条件写清楚就可以了。
- 特别是针对越界判断那里。
class Solution
public int strToInt(String str)
if(str == null || "".equals(str.trim())) return 0;
int max_num = Integer.MAX_VALUE / 10, max_ind = Integer.MAX_VALUE % 10, index = 0;
int flag = 1, num = 0;
char[] chars = str.toCharArray();
while(chars[index] == ' ') index++;
if(chars[index] == '-')
flag = -1;
index++;
else if(chars[index] == '+') index++;
while(index < str.length())
if(chars[index] < '0' || chars[index] > '9') break;
if(num > max_num || (num == max_num && (chars[index] - '0' > max_ind)))
if(flag == 1) return Integer.MAX_VALUE;
else return Integer.MIN_VALUE;
num = num * 10 + chars[index] - '0';
index++;
return num * flag;
总结
熟悉字符串的操作。
以上是关于剑指 Offer 67. 把字符串转换成整数的主要内容,如果未能解决你的问题,请参考以下文章