Leetcode-js(1)

整数反转

一个带符号的32位整数,将他顺序颠倒后求出。输入 -123 ; 输出-321

var reverse = function(x){
  /*将整型变量转化为字符串*/
  var string_x = x+"";
  if(x<0)
  {
    /*replace函数用于去除符号,split用于转化数组,reverse进行数组倒序,join再变为字符串*/
    var new_string_x = string_x.replace("-","").split("").reverse().join(""); 
    var number = parseInt("-"+new_string_x);
    /*Math.abs为绝对值*/
    if(Math.abs(number)>2147483648) return 0;
    else return number;
  }
  else
  {
    var new_string_x = string_x.split("").reverse().join("");
    var number = parseInt(new_string_x);
    if(number>=2147483648) return 0;
    else return number;
  }
};

回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例1:

121
true

示例2:

-11 10
false

一: 转换字符串方法

与上面例题类似先转化为字符串,再数组再对比最后得出结论便可

二: 数学方法

思路

  1. 如果值为负或者最后一位是0直接false
  2. 假设该数为num1,对num1进行10的取模运算,然后将取得的数值每一次都向前一位移动(因为回文数要求倒序,最后一位即回文的最高位)
  3. 在进行取模之后对x进行缩减,注意在js中如果直接进行 / 的运算还将存在小数,因此得采取parseInt()对它进行整型化处理。
  4. 将取模与做除法运算的两个结果进行对比。如果取模值>除法值即表明已经过半(回文数中间值)
  5. 最后如果为奇数则要把取模值再做一次除法运算再进行比较即可

代码

var isPalindrome = function(x) {
    if(x<0||(x%10 == 0 && x!=0)) return false;
    var renum=0;
    while(x>renum)
    {
        renum = renum*10+x%10;
        x = parseInt(x/10);
    }
    return x == renum || x == parseInt(renum/10);
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的...
    sky云逝阅读 2,361评论 0 0
  • 11js关系运算符 <!DOCTYPE html> 11js关系运算符 /*关系运算符存在的意义:1、默认情况下,...
    ouyangqinbin阅读 2,999评论 0 0
  • 一、ECMAScript 一元运算符 一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中...
    耦耦阅读 3,555评论 0 0
  • 数据类型转换: 1.当赋值符号两边的数据类型不同的时候,数据类型转换是自动的,不需要程序员插手 当给 int 类型...
    Munin_阅读 4,266评论 0 2
  • 其实孩子哭的时候,最先需要处理的是家长的情绪。”德国心理学家卡萝拉·舒斯特认为,孩子的哭闹会让父母处于一种特别...
    Teacher纪阅读 3,297评论 0 4

友情链接更多精彩内容