回文算法概述: 给出一个整型数 n。转成二进制数后 从中找出一串0101010xxxx,如果前后顺寻颠倒 仍然相同,则为一个回文 求某个整数的最大回文的长度。 static int getHuiwenMaxLength(int src){ long start = System.currentTimeMillis(); String srcBinary = Integer.toBinaryString(src);//二进制字符标示 int len = srcBinary.length(); char[] srcChars = srcBinary.toCharArray(); int srcTemp; String srcStr = null; int reverTemp = 0; String reverStr = null; int size; for (int i = 0; i < len; i++){ for (int k = 0; k <= i; k++){ srcStr = String.valueOf(srcChars, k, len-i); if (!srcStr.startsWith("0") && !srcStr.endsWith("0")){ size = len - i; reverStr = reverse(srcStr); srcTemp = Integer.valueOf(srcStr,2); reverTemp = Integer.valueOf(reverStr,2); if (srcTemp == reverTemp){ System.err.println("cost time.." + (System.currentTimeMillis()-start)); return size; } } } } return 1; } static String reverse(String src){ int len = src.length(); char[] retChars = new char[len]; for (int i = 0; i < len;i++){ retChars[i] = src.charAt(len-i-1); } return String.valueOf(retChars); }