首页 > 其他分享 >剑指 Offer 67. 把字符串转换成整数

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

时间:2023-09-11 22:55:30浏览次数:50  
标签:转换成 return Offer 67 && ans minus math

题目链接: 剑指 Offer 67. 把字符串转换成整数

题目描述:

写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。

解法思路:

直接模拟题

代码:


func strToInt(s string) int {
    s = strings.Trim(s, " ")
    minus := 1
    var ans int64 = 0
    for i := range s {
        // 处理正负号
        if i == 0 && (s[i] == '+' || s[i] == '-') {
            if s[i] == '-' {
                minus = -1
            }
            continue
        }
        // 非数字 非 +/-,直接跳出
        if s[i] < '0' || s[i] > '9' {
            break
        }
        // 处理数字
        ans = ans * 10 + int64(s[i]-'0')
        if minus == 1 && ans > math.MaxInt32 {
            return math.MaxInt32
        } else if minus == -1 && ans > math.MaxInt32+1 {
            return math.MinInt32
        }
    }
    return int(ans) * minus
}

标签:转换成,return,Offer,67,&&,ans,minus,math
From: https://www.cnblogs.com/lxing-go/p/17694798.html

相关文章

  • 剑指 Offer 66. 构建乘积数组
    题目链接:剑指Offer66.构建乘积数组题目描述:**给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B[i]的值是数组A中除了下标i以外的元素的积,**即B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。解法思路:代码:funcconstructArr(a[......
  • 剑指 Offer 65. 不用加减乘除做加法
    题目链接:剑指Offer65.不用加减乘除做加法题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用“+”、“-”、“*”、“/”四则运算符号。解法思路:不用加减乘除,那么可以用位运算代替:可以用a^b运算表示无进位的加法可以用(a&b)<<1表示进位因此a+b=a^b+((a......
  • 剑指 Offer 63. 股票的最大利润
    题目链接:剑指Offer63.股票的最大利润题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?解法思路:使用minv记录前i天的最低价格,第i天卖出的利润就是prices[i]-minv,遍历一遍数组,不断更新最大利润代码:funcmaxP......
  • 剑指 Offer 60. n个骰子的点数
    题目链接:剑指Offer60.n个骰子的点数题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。解法思路:还未理解代码://通常做法是声明一个二维数组dp,dp[i][j]代表前i个骰子的点数和j的概率,//并执行状态转移。而由于......
  • 剑指 Offer 61. 扑克牌中的顺子
    题目链接:剑指Offer61.扑克牌中的顺子题目描述:从若干副扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为0,可以看成任意数字。A不能视为14。解法思路:代码://1.将所有的0删掉,看剩下的数//2.看有没有......
  • Android程序员掌握这些面试技巧,offer拿到手软
    前言面试的顺利与否,直接决定了你是否能获得心仪的offer以及是否能拿到满意的薪资。如果说,简历是获得面试的通行证的话,那面试无疑是决定你是否能获得这份工作的重中之重。因此为自己的面试认真做个准备还是性价比很高的一件事情。面试前准备的四要素,简历、面经、知己知彼,录音设备。......
  • 剑指 Offer 59 - I. 滑动窗口的最大值
    题目链接:剑指Offer59-I.滑动窗口的最大值题目描述:给定一个数组nums和滑动窗口的大小k,请找出所有滑动窗口里的最大值。解法思路:单调队列:维护一个单调的队列,队列中保存的是对应数字的数组下标每新加进来一个元素,首先删除队头(超出滑动窗口的范围的值)然后比较当前元......
  • 剑指 Offer 56 - II. 数组中数字出现的次数 II
    题目链接:剑指Offer56-II.数组中数字出现的次数II题目描述:在一个数组nums中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。解法思路:代码:......
  • 题解 LOJ6738【王的象棋世界】
    problem一个\(R\timesC\)的棋盘,你有\(Q\)组询问,每次询问国王走\(R-1\)步从\((1,a)\)到达\((R,b)\)有多少种方案。你只需要输出答案对\(998244353\)取模的结果。\(2\leC\le10^5,C\leR\le10^9,1\leQ\le10^5\)。solution首先DP和矩阵优化DP都比较简单,但......
  • 剑指 Offer 57 - II. 和为s的连续正数序列
    题目链接:剑指Offer57-II.和为s的连续正数序列题目描述:输入一个正整数target,输出所有和为target的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。解法思路:双指针:当总和小于target时,j指针向后移动,直到大于或等于停......