zoukankan      html  css  js  c++  java
  • 题7:反转整数

    算法太差,中间几个都不会


    给定一个 32 位有符号整数,将整数中的数字进行反转。

      我刚开始的想法有些太简单了,直接把数字转成字符串,然后把字符串再转成数组,用数组中的方法反转后再转成字符串,最后转成数字就可以了.  无视了负数和注意里要求的32位整型数字,随后加了个判断条件,在是负数的情况下,先取绝对值然后拆分翻转,最后在转成数字时添加负号.  对于超出整型范围的数字,在最后做判断,不在区间内的返回0即可,有个小插曲是,刚开始判断了输入的值,导致不能正确运行,随后及时发现并且改正

     1 function reverse(x) {
     2   var str = x + '';
     3   var arr = null;
     4   var num = null;
     5   //对于正数,采取常规方法即可得到
     6   if (x >= 0) {
     7     //拆分
     8     arr = str.split('');
     9     //翻转
    10     arr = arr.reverse();
    11     //拼接
    12     str = arr.join('');
    13     //转成数字
    14     num = Number(str);
    15   } else if (x < 0) {
    16     //先不对负号做处理,对数字取绝对值
    17     str = Math.abs(str) + '';
    18     arr = str.split('');
    19     arr = arr.reverse();
    20     str = arr.join('');
    21     //在转成数字时,添加负号
    22     num = -Number(str);
    23   } 
    24   //对于不在32位整型范围的返回0
    25   if (num < Math.pow(-2,31) || num > Math.pow(2, 31)-1) {
    26     return 0;
    27   }
    28   return num;
    29 }

      今天就这么多,有时间再做一些

  • 相关阅读:
    [知识点]计算几何I——基础知识与多边形面积
    [旧版][知识点]SPFA算法
    [旧版][知识点]A*搜索(启发式搜索)
    [知识点]线段树
    [小工具]ChemistryHelper
    [考试]20150314
    [知识点]Cantor展开
    [旧版][知识点]拓扑排序
    [无效]网络流之Dinic算法
    [SCOI2005]扫雷Mine
  • 原文地址:https://www.cnblogs.com/missjingjing/p/9561194.html
Copyright © 2011-2022 走看看