华为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方法测了下。

你可能感兴趣的:(编程,算法,面试,华为,idea)