题目连接python
Find the largest palindrome made from the product of two n-digit numbers.git
Since the result could be very large, you should return the largest palindrome mod 1337.web
Example:svg
Input: 2函数
Output: 987ui
Explanation: 99 x 91 = 9009, 9009 % 1337 = 987spa
Note:code
The range of n is [1,8].xml
一、思路一代码(402ms):ip
class Solution135 {
public:
long buildPalindrome(int n)
{
string s = to_string(n);
reverse(s.begin(), s.end());
return stol(to_string(n) + s);
}
int largestPalindrome(int n) {
if (n == 1)
return 9;
int max = pow(10, n) - 1;
int min = pow(10, n - 1);
for (int i = max; i >= min;i--)
{
long mix = buildPalindrome(i);
for (long j = max; j*j >= mix;j--)
{
if (mix%j == 0 && mix / j <= max)
return mix % 1337;
}
}
return -1;
}
};
一、思路一代码(超时)
class Solution(object):#time limited
def largestPalindrome(self, n):
""" :type n: int :rtype: int """
if n==1:
return 9
max=10**n-1
min=10**(n-1)
def buildPalindrome(x):
s=str(x)[::-1]
a=long(str(x)+s)
return a
i=max
while i>=min:
mix=buildPalindrome(i)
j=max
while j*j>=mix:
if mix%j==0 and mix/j<=max:
return mix%1337
j-=1
i-=1
return -1