回文数算法

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

面试官:你听说过“回文数”吗?
我:回魂数?灵魂的“魂”吗?(心想:好恐怖,还有这种数???)
面试官:算了,比如给你一个数: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;
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 面向读者 找工作是个力气活,但也需要巧劲儿,有时候还靠点运气。 我不知道如何能找到一个好工作,但是我可以说一...
    你的本色阅读 6,839评论 1 17
  • 为香而生,比如雨童! 这个世界上,总有一些人是为什么而生的,一如宿命。比如牛顿是为那只掉下来的苹果而生的,乔布斯是...
    一念花开香道梅雨童阅读 214评论 0 0
  • 学习上的缺点,缺乏较真精神,不求甚解,理解不到位,不能够长久的记忆,学了就忘。并且不能学以致用,理论与实践脱离,运...
    笨鸟1711阅读 315评论 0 0
  • 西塞山前白鹭飞(七十六) 七十六 这是如花收到王勇的最后一封来信: 亲爱的如花: 你好,见字如面!我已经半...
    六月孺子牛阅读 268评论 4 3
  • 这难道是思念 做过的一切 想让它随风而去 可随着时光的流逝 脑海中的记忆,却 为什么没有抹去 这难道是思念 是否,...
    枫林听雨_4e72阅读 962评论 22 44