难度:中等 来源:8. 字符串转换整数
请你来实现一个 atoi 函数,使其能将字符串转换成整数。
字符串包含的字符包括:数字、大小写字母、+、-、空格。
字符串能够转成整数必须满足如下要求:
示例 1:
输入: "42"
输出: 42
示例 2:
输入: " -42"
输出: -42
解释: 第一个非空白字符为 '-', 它是一个负号。
我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。
示例 3:
输入: "4193 with words"
输出: 4193
解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。
示例 4:
输入: "words and 987"
输出: 0
解释: 第一个非空字符是 'w', 但它不是数字或正、负号。
因此无法执行有效的转换。
示例 5:
输入: "-91283472332"
输出: -2147483648
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。
因此返回 INT_MIN (−231) 。
思路:
题解:
/**
* @param {string} s
* @return {number}
*/
var myAtoi = function(s) {
s = s.trim()
const len = s.length
if (s[0] !== '+' && s[0] !== '-' && isNaN(+s[0])) return 0
let index = 1
while (index < len) {
if (s[index] == ' ' || isNaN(+s[index])) {
break
}
index++
}
s = +s.substr(0, index)
if (isNaN(s)) return 0
if (s > 2 ** 31 - 1) return 2 ** 31 -1
else if (s < (-2) ** 31) return (-2) ** 31
return s
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有