// 真的是面向测试用例编程,我代码写的是真的又丑又臭,哎,写完都不想多看一眼
function StrToInt(s = "") {
// write code here
s = s.trim()
if (s.length == 0) {
return 0
}
if (s.length == 1 && (s[0] == "+" || s[0] == "-")) {
return 0
}
// if (s[0] >= "a" && s[0] <= "z") {
// return 0
// }
//正数标志
let flag = true
if (s[0] == "-") {
flag = false
}
if (!Number.isNaN(parseInt(s))) {
console.log(2);
//说明此数字为负数
if (flag == false) {
if (-parseInt(s) > 2 ** 31) {
return -(2 ** 31)
} else {
return parseInt(s)
}
} else {
if (parseInt(s) > 2 ** 31 - 1) {
return 2 ** 31 - 1
} else {
return parseInt(s)
}
}
}
// 只用于存放数字的字符串数组
let newStrArray = []
let index = 0
// console.log(Number.isInteger(parseInt("1")));
for (let i = 0; i < s.length; i++) {
if (s[i] >= "a" && s[i] <= "z") {
break
}
if (i != 0 && (s[i] == "+" || s[i] == "-")) {
break
}
if (Number.isInteger(parseInt(s[i]))) {
newStrArray[index++] = s[i]
}
}
if (newStrArray.length == 0) {
return 0
}
if (newStrArray[0] == "0") {
return 0
}
console.log(newStrArray);
//说明此数字为负数
if (flag == false) {
if (parseInt(newStrArray.join("")) > 2 ** 31) {
return -(2 ** 31)
} else {
return -parseInt(newStrArray.join(""))
}
} else {
console.log(2)
if (parseInt(newStrArray.join("")) > 2 ** 31 - 1) {
console.log(1)
return 2 ** 31 - 1
} else {
return parseInt(newStrArray.join(""))
}
}
}
module.exports = {
StrToInt : StrToInt
};