给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
解1
var reverse = function (x) {
let n = Math.pow(2, 31)
let res = 0;
if (x > 0) {
res = Number(String(x).split('').reverse().join(''))
} else {
res = -Number(String(Math.abs(x)).split('').reverse().join(''))
}
if(res > n - 1 || res < -n) return 0
return res
};
解2官方
var reverse = function(x) {
let rev = 0;
while (x !== 0) {
const digit = x % 10; // 取出最后一个数字
x = ~~(x / 10); // ~~来取整, java的int是直接省去了小数
rev = rev * 10 + digit;
if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) {
return 0;
}
}
return rev;
};
8. 字符串转数字
parseInt('123 abc') // 123
parseInt('abc 123') // NaN
var myAtoi = function(s) {
let res = parseInt(s.trim())
let l = -Math.pow(2,31)
let r = Math.pow(2, 31) - 1
if(Number.isNaN(res)) return 0
if(res>= r ) return r
if(res <= l) return l
return res
};
9.回文字
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
var isPalindrome = function(x) {
return String(x) === String(x).split('').reverse().join('')
};
14. 最长公共前缀
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
var longestCommonPrefix = function (strs) {
let res = ''
let first = strs[0]
let length = first.length
for (let i = 0; i < length; i++) {
let flag = strs.every(j => {
return j[i] === first[i]
})
if (flag) {
res += first[i]
} else {
break;
}
}
return res
};