【LeetCode】479. 最大回文数乘积 解题报告 (python)

原题地址:https://leetcode-cn.com/problems/largest-palindrome-product/

题目描述:

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

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

示例:

输入: 2

输出: 987

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

说明:

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

 

解题方案:

class Solution:
    def largestPalindrome(self, n: int) -> int:
        upper, lower = 10**n-1, 10**(n-1)
        
        for n1 in range(upper, lower-1, -1):
            
            num = n1*(10**n)
            c = n
            t = n1
            while(c):
                num += t%10*(10**(c-1))
                t //= 10
                c -= 1

            n2 = upper
            while(n2*n2>num):
                if num%n2==0:
                    return num%1337
                n2-=1
        
        return 9

 

你可能感兴趣的:(LeetCode)