我有这个问题:

如果从左向右和从右向左读取时,正整数在十进制中的表示形式相同,则称为palindrome。对于给定的不超过K个位数的正整数1000000,将大于K的最小回文值写入输出。数字始终显示时不带前导零。
输入项

第一行包含整数t,即测试用例的数量。整数K在接下来的t行中给出。
输出量

对于每个K,输出比K大的最小回文。


输入:

2
808
2133


输出:

818
2222


我的代码将输入转换为字符串,并评估字符串的任一端,从而进行相应的调整并向内移动。但是,问题要求它可以接受最长10 ​​^ 6位数的值,如果我尝试解析大数,则会遇到数字格式异常,即

Integer.parseInt(LARGENUMBER);


要么

Long.parseInt(LARGENUMBER);


并且LARGENUMBER超出范围。谁能想到解决方法或如何处理这么大的数字?

最佳答案

您可能使用BigInteger类来处理这样的大整数。

但是,我不会指望它能在如此庞大的规模下保持高效。因为它仍然使用O(n^2)算法进行乘法和转换。

10-08 14:58