美文网首页
回文数算法

回文数算法

作者: 俗人浮生 | 来源:发表于2019-03-10 21:27 被阅读0次

最近笔者去面试,面试到最后,面试官突然来一句,接下来说一下算法吧,这一句一出,我已经有点“凉凉”的感觉了,毕竟我没专门去学过算法,更别谈什么准备了,尴尬!

面试官:你听说过“回文数”吗?
我:回魂数?灵魂的“魂”吗?(心想:好恐怖,还有这种数???)
面试官:算了,比如给你一个数:123456,如何把它转化为654321?

嘿嘿,估计他那会心里有点无语吧,但这题我之前在一家公司笔试的时候遇到过,我还记得笔试题上还明确要求不能将数字转化为String类型呢,我简单说了一下思路,大概也就那样吧,居然两次面试都遇到这题,回来我就自己动手尝试一下,记录如下:

public static void main(String[] args){
       getHuiWenShu(123456);
        getHuiWenShu(502000);
        getHuiWenShu(0);
        getHuiWenShu(8);
}

//第一种,最简单,直接用StringBuilder的reverse方法
private int getHuiWenShu(int a){
       String string=String.valueOf(a);
       StringBuilder stringBuilder=new StringBuilder(string).reverse();
       Integer integer = Integer.valueOf(stringBuilder.toString());
       LogUtil.loge("原来:"+a+",转换后:"+integer);
       return integer;
}

//第二种,使用String倒序拼接的方法
private int getHuiWenShu(int a){
       String string=String.valueOf(a);
       String result="";
        for(int i=string.length()-1;i>=0;i--){
            if(string.charAt(i)!='0' || !"".equals(result)){
                result+=string.charAt(i);
            }
        }
        Integer integer=0;
        if(!"".equals(result))
            integer = Integer.valueOf(result);
       LogUtil.loge("原来:"+a+",转换后:"+integer);
       return integer;
}

//第三种,不转String,直接用运算
 private int getHuiWenShu(int a){
        int result=0;
        while (a!=0){
            int b=a%10;
            result=result*10+b;
            a=a/10;
        }
        LogUtil.loge("转换后:"+result);
        return result;
}

其实嘛,如果你不是面试算法工程师岗位,一般来说面试中的算法也不是很难的,但前提是你之前要有所准备,比如像今天说到的“回文数”啊,排序算法啊,还有洗牌算法啊等等,这些你稍稍看一下,也不用花很多时间,但关键时候有可能会给你的面试加分的。

相关文章

  • 回文数算法

    最近笔者去面试,面试到最后,面试官突然来一句,接下来说一下算法吧,这一句一出,我已经有点“凉凉”的感觉了,毕竟我没...

  • 5、Palindrome Number

    回文数:123321、12321算法:逐位求余,计算其和。与源数比较,相等即是。code:

  • 判断回文数算法

    回文数是指正序(从左到右)读和倒序(从右到左)读都是一样的整数。 比如形如 121,1221,13531 的数字都...

  • 45.判断是否是回文字符串

    day1:js基础->算法。回文数[https://leetcode-cn.com/problems/palind...

  • 回文数最优解

    回文数 非回文数 JAVA 解法

  • Java实现每日一道算法面试题(12):leecode9 回文数

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

  • 算法分析---回文数判断

    转载地址 有这样一类数字,他们顺着看和倒着看是相同的数,例如:1111,1221,2332等,这样的数字就称为:回...

  • 面试算法:回文数

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

  • leecode刷题(31) -- 回文数

    leecode刷题(31) -- 回文数 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右...

  • Leetcode(9) - 回文数 - java版

    Leetcode(9) - 回文数 - java版 题目 难度: 简单 判断一个整数是否是回文数。回文数是指正序...

网友评论

      本文标题:回文数算法

      本文链接:https://www.haomeiwen.com/subject/lxglpqtx.html