芊芊7094 发表于 2016-6-6 09:33:51

华为5分钟的编程题

  去华为面试的一道编程题,要求五分钟写一个程序。把一个输入的数字完全逆转。比如输入25679,返回97652。我第一想法是用StringBuffer的reverse()一句话就写完了。eg:StringBuffer stb=new StringBuffer("3d3a555445");
  stb.reverse();然后在先转成String类型,逆转后再转回去。结果面试官说,不能用Java的类库方法。顿时压力就有点大了。然后想先解析成字符用Vector来存储,可以知道长度,比数组简单,应该也能很快搞定。面试官看了下说还是不行,我就说我只是把Vector当数组来使用还不行?他说压根不允许用数组。当时头就大了。数组都不让用那怎么做啊。结果他说不用数组反而一下激发了我,这题就很简单,不让用数组是因为就用不着。想通了算法就简单了,不是五分钟的问题。原来写五行代码就够了。当时是只写了一个方法,面

public class Re {
public static int reverse(int num){
int returnNum=0;
int yuShu=0;
while(num>9){
yuShu=num%10;
num=num/10;
returnNum=returnNum*10+yuShu;
}
return returnNum*10+num;
}
public static void main(String[] args) {
System.out.println(reverse(356212232));
}
}

  试完后回家在电脑上加了main方法测了下。
页: [1]
查看完整版本: 华为5分钟的编程题