回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
示例 1:
输入:x = 121
输出:true
示例 2:
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:
输入:x = -101
输出:false
这是一个将他变成字符串操作的一个解法,也比较简单一行代码就没了.
const isPalindrome = (x) => {
if (x || x === 0) {
return x.toString().split('').reverse().join().replace(/,/g, '') - 0 === x;
}
return false;
}
下面这是没有通过去操作字符串的一个解法,但是消耗的内存也比上一个多了一点/(ㄒoㄒ)/~~
const isPalindrome = (x) => {
let num = x;
let y = 0;
if (x === 0) return true;
if (x < 0 || x % 10 === 0) return false;
while (x) {
y = parseInt(y * 10 + parseInt(x % 10));
x = parseInt(x / 10)
}
if(y === num){
return true;
}else{
return false;
}
}
好在这俩种解法都是没问题的(●’◡’●)
俩数相加
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
示例 2:
输入:l1 = [0], l2 = [0]
输出:[0]
示例 3:
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]
const addTwoNumbers = (l1, l2) => {
const arr = [];
if (l1 !== null || l2 !== null) {
const l1Num = l1 !== null ? l1.reverse().join().replace(/,/g, '') - 0 : 0;
const l2Num = l2 !== null ? l2.reverse().join().replace(/,/g, '') - 0 : 0;
const num = (l1Num + l2Num).toString().split('').reverse();
for (let v in num) {
arr.push(num[v] - 0);
}
return arr;
}else{
return null;
}
}