题目描述
求比数n(用字符串表示)大的最小回文数的字符串形式,例如123的下一个最小回文数是131。
解题思路
必须要考虑到的就是题目中给的数字是以字符串的形式,所以用将字符串转成int、long是肯定会遇到通不过了的case的,所以在编码时需要在字符串上操作,不可轻易转成数字形式。
下面给出解题思路:
代码
/**
* 求比数n大的最小回文数的字符串形式
* @param n
* @return
*/
static String getNextSymmetricNumber(String n){
int len = n.length();
int i, j;
StringBuilder stb = new StringBuilder(n);
StringBuilder half = new StringBuilder();
if (len == 1) {
// n是一位数的情况,分为n=9和n<9
if (n.equals("9")) {
return "11";
} else {
return String.valueOf(Integer.parseInt(n) + 1);
}
} else if (len % 2 == 1) {
// n为奇数位
// 取[0,len/2+1]位