Monday, September 17, 2018

[LeetCode]Super Palindromes

这道题R的最大值可以到达10^18,所以我们只需要验证[1, 10^9]的回文,既然要求是回文,长度又可以砍一半,所以我们需要验证的是:

  • [1, 9999]范围中的数为前一半,长度为偶数的回文
  • [1, 99999]范围中的数为前一半,个位数为中心,长度为奇数的回文
因为10^9肯定不是回文,所以我们不需要管。这样可以保证我们遍历[1, 999999999]中的所有回文,我们依次check这些回文是不是满足要求。时间复杂度O(M^0.25 * log M),M为R的最大值。代码如下:


No comments:

Post a Comment