1. 程式人生 > >Leetcode 479.最大回文數乘積

Leetcode 479.最大回文數乘積

style long rom ever for 回文數 得到 parse break

最大回文數乘積

你需要找到由兩個 n 位數的乘積組成的最大回文數。

由於結果會很大,你只需返回最大回文數 mod 1337得到的結果。

示例:

輸入: 2

輸出: 987

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

說明:

n 的取值範圍為 [1,8]。

 1 class Solution {
 2     public int largestPalindrome(int n) {
 3         if(n == 1) return 9;
 4         int upper = (int)Math.pow(10,n)-1;
 5         for
(int i = upper; i>upper/10; i--){ 6 long palin = toPalindrome(i); 7 for(int j = upper; j>upper/10; j--){ 8 if(palin / j > upper) 9 break; 10 if(palin % j == 0) 11 return (int)(palin % 1337); 12 }
13 } 14 return -1; 15 } 16 17 public long toPalindrome(int i){ 18 StringBuffer str = new StringBuffer(); 19 str.append(i+""); 20 String a = str.reverse().toString(); 21 return Long.parseLong(i+""+a); 22 } 23 }

Leetcode 479.最大回文數乘積