剑指 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. 把字符串转换成整数的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 67. 把字符串转换成整数

剑指Offer 67. 把字符串转换成整数(有限状态机)/ 剑指Offer 68 - I. 二叉搜索树的最近公共祖先

剑指Offer面试题67. 把字符串转换成整数

剑指Offer面试题67. 把字符串转换成整数

算法剑指 Offer 67. 把字符串转换成整数

剑指 Offer 67. 把字符串转换成整数阅读理解题?