Java实现 LeetCode 479 最大回文数乘积

Yonina ·
更新时间:2024-09-21
· 846 次阅读

479. 最大回文数乘积

你需要找到由两个 n 位数的乘积组成的最大回文数。

由于结果会很大,你只需返回最大回文数 mod 1337得到的结果。

示例:

输入: 2

输出: 987

解释: 99 x 91 = 9009, 9009 % 1337 = 987

说明:

n 的取值范围为 [1,8]。

class Solution { public int largestPalindrome(int n) { if(n == 1) return 9; long max = (long)Math.pow(10,n) - 1; for(long i = max - 1; i > max / 10; i--){ String s1 = String.valueOf(i); long rev = Long.parseLong(s1 + new StringBuilder(s1).reverse().toString()); for(long x = max; x * x >= rev; x --){ if(rev % x == 0) return (int)(rev % 1337); } } return -1; } }
作者:南 墙



JAVA leetcode 回文数

需要 登录 后方可回复, 如果你还没有账号请 注册新账号