你需要找到由兩個 n 位數的乘積組成的最大回文數。
由於結果會很大,你只需返回最大回文數 mod 1337得到的結果。
輸入: 2
輸出: 987
解釋: 99 x 91 = 9009, 9009 % 1337 = 987
說明:
n 的取值範圍為 [1,8]。
我們構造回文數乘積。
對於乙個2位數,乘積最大是9999,最小是1010,也就是說,我們不妨將答案分為兩部分,最大的時候就是由98生成,也就是9889,我們然後判斷其是否能夠整除乙個10~99數。
對於乙個n位數,那麼我們令max = (long long)pow(10,n)-1,我們從max-1到max/10進行生成回文數,如果回文數能整除乙個數y,這個數y滿足y*y >= 回文數,以及小於max,這樣能保證另乙個除數也是n位數。詳細過程見**
int
largestpalindrome
(int n)
}return-1
;}
LeetCode 5 最大回文子串
解題思路 首先想到的是暴力破解,暴力破解的時間複雜度較高,但思路清晰。理清暴力解法的思路分析其優缺點,有時可以為後續的優化開啟思路。具體的思路如下 code class solution 遍歷所有長度大於2的子串 int curlen 用於記錄當前遍歷得到的子串長度 int curmaxlen 1 ...
最大回文子串行 最大回文子串
最大回文子串行,例如cafgfkc,最大回文子串行cfgfc,輸出5。子串行相當於刪除某些位置上的字元後形成的序列。最大回文子串,例如cafgfkc,最大回文子串fgf,輸出3。子串相當於擷取start位到end位的子串。試過沒認真看題目,原題是求子序列,想當然以為求子串,直接高高興興用manach...
leetcode練習5(最大長度的回文字串)
題目 給定乙個字串,輸出其中長度最大的回文字串。題解 1 遍歷字串,檢查以字串的某個 某相鄰兩個 字元為中心,向字串左右展開,是否滿足回文字串的要求 class solution void count else else if str i str i 1 若回文字串無中心單字元 else if co...