最近忙着面试耽误了几天,今天刷了07,09都是字符串处理,一个是大数反转,一个是回文数判断,我都是转成字符串处理的,过了是过了,但是挺慢的,先记着,等有机会优化下
题目
给定一个 32 位有符号整数,将整数中的数字进行反转。
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
x=x.toString();
if(x[x.length-1]==0&&x.length==1){
return parseInt(x);
}else if(x[x.length-1]==0){
x=x.substr(0,x.length-1);
}
if(x[0]=='-'){
x=x[0]+ x.substr(1,x.length-1).split('').reverse().join('');
}
else{
x=x.split('').reverse().join('');
}
x=parseInt( x);
if(x>2147483647||x<-2147483648){
return 0;
}else{
return x
}
};
心得:没考虑0,有个大数范围的判断,刚开始没考虑,我的可能比较蠢,以后再改吧
09
题目
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
var isPalindrome = function(x) {
let isTrue=true;
x=x.toString();
// let x1=x.split('').reverse();
for(let r=0;r<x.length/2;r++){
if(x[r]!==x[x.length-r-1]){
isTrue=false;
break;
}
}
return isTrue;
};
心得:这个就是特别慢,需要优化速度