今天替师兄去小米笔试,第一道题就是判断一个数是否是回文数,要求算法的时间和空间复杂度尽可能的低。
我的做法是先将long转换为String,然后采用二分法判断是否是回文数。
import java.util.Scanner;
/**
* @author yuan
*
* @date 2014年9月25日 下午4:27:32
*/
public class PalindromicNumber {
public static boolean isPalindromicNumber(long num){
String numStr = Long.toString(num);
for(int i = 0; i < numStr.length()/2; i++){
if(numStr.charAt(i) != numStr.charAt(numStr.length()-1-i)){
return false;
}
}
return true;
}
/**
* Name: main
* Description:
* @param args
*
* @author yuan
* @date 2014年9月25日 下午4:27:32
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个长整数:");
long num = sc.nextLong();
System.out.println(isPalindromicNumber(num));
}
}