码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 479.最大回文数乘积

时间:2019-02-14 00:07:17      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:ringbuf   sel   family   bre   解释   输入   ==   pre   mod   

最大回文数乘积

你需要找到由两个 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.最大回文数乘积

标签:ringbuf   sel   family   bre   解释   输入   ==   pre   mod   

原文地址:https://www.cnblogs.com/kexinxin/p/10372463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!