大家对回文串不陌生吧?一个字符串从前看和从后看如果是一样的话,就是回文串。比如“上海自来水来自海上”就是一个回文串。现在问题来了,把一个数字看成字符串,问它是不是回文数?这么简单的题目对想要成为小米工程师的你来说肯定不是问题。不过要提醒一下哦:时间复杂度和空间复杂度越低的算法,得分越高。

3 收藏


直接登录
最新评论
  • Wenxuan   2016/03/05

    pos = 0;
    arr[];
    loop while n != 0
    x = n % 10;
    arr[pos++] = x
    x /= 10

    i = 0
    j = pos – 1
    loop while i < j
    if arr[i++] != arr[j–] return false
    return true

    • Wenxuan   2016/03/05

      第6行应该是n /= 10(不能修改评论?)

      pos = 0;
      loop while n != 0
      arr[pos++] = n % 10
      n /= 10

      i = 0
      j = pos – 1
      loop while i < j
      if arr[i++] != arr[j–] return false
      return true

  • 袁言 工程师 2016/03/05

    #最快算法之python版
    def r(num):
    rtv = 0
    while num:
    rtv = rtv * 10 + num % 10
    num /= 10
    return rtv

    def is_palindrome(num):
    return num == r(num)

  • 王先生 学生 2016/03/09

    算法有好多,给出几个给大家分享一下:
    1、将long转换为字符串,从头和尾向中间扫描即可
    2、每次取出头尾的数字,比较,然后去掉头尾
    3、取出每一位放入栈中,再弹出组成一个新数,和原数比较

  • tianxun   2016/03/09

    1、计算数字的长度
    2、转为数字除以2得中间位数和余数
    3、数字除以10的位数方得后面一半的数字
    4、判断余数为零,数字取余10的位数 不为零,数字取余10的位数+1 得到前一半数
    5、判断前一半数和后一半的数字是否相等

  • sorry丶 逗b系,专治不开心 2016/03/09

    public static boolean checkStr(String str){
    int low=0;
    int high=str.length()-1;
    while(low<=high){
    if(str.charAt(low)!=str.charAt(high)){
    return false;
    }
    low++;
    high–;
    }
    return true;
    };
    我也随意写了一个,不知道对不对啊。

  • static boolean isIntegerPalidrome1(int integer) {
    int temp = integer;
    int compare = 0;
    while (temp != 0) {
    compare = compare * 10 + temp % 10;
    temp /= 10;
    }
    if (compare == integer) {
    return true;
    }
    return false;
    }

  • 画梦 iOS工程师 2016/03/11

    public boolean isHuiWen(long num) {
    String tempStr = Long.toString(num);
    StringBuffer sb = new StringBuffer(tempStr);
    sb = sb.reverse();
    tempStr = sb.toString();
    long result = Long.parseLong(tempStr);
    if (result == num) {
    return true;
    } else {
    return false;
    }
    }

  • 1.拆分2份
    2.左边通过位运算反转
    3.然后俩边做异或

  • Smohan 前端工程师 2016/03/13

    js版:
    function HW(str){
    var temp = str.split(“”).reverse().join(“”);
    return str == temp;
    }
    思路,将字符串分割成数组,数组在反转,然后在拼接成字符串,比较后字符串和输入字符串是否相同