最强解析面试题:把字符串转换成整数

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最强解析面试题:把字符串转换成整数相关的知识,希望对你有一定的参考价值。


最强解析面试题:把字符串转换成整数

文章讲解 “ 把字符串转换成整数 ” 经典面试题,包含思路及源码,及解惑!

题目

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0

示例1

输入:
“+2147483647”
返回值:
2147483647

示例2

输入:
“1a33”
返回值:
0

思路

1、区分 符号位 后,进行十进制计算数值

代码一

package main

import "strconv"
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * @param str string字符串
 * @return int整型
 */
func StrToInt(str string) int {
   // write code here
   res, _ := strconv.Atoi(str)
   return res
}

代码二

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * @param str string字符串
 * @return int整型
 */
func StrToInt(str string) int {
   // write code here
   if len(str) < 1 {
      return 0
   }
   str0 := str
   if str[0] == '+' || str[0] == '-' {
      str = str[1:]
   }
   if len(str) < 1 {
      return 0
   }
   n := 0
   for _, v := range []byte(str) {
      v -= '0'
      if v > 9 {
         return 0
      }
      n = n*10 + int(v)
   }
   if str0[0] == '-' {
      n = -n
   }
   return n
}

附录

忙碌

以上是关于最强解析面试题:把字符串转换成整数的主要内容,如果未能解决你的问题,请参考以下文章

程序员面试50题—把字符串转换成整数[算法]

最强解析面试题:回文数

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

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

[LeetCode]面试题67. 把字符串转换成整数(字符串)

[LeetCode]面试题67. 把字符串转换成整数(字符串)