前往
大廳
主題

LeetCode - 2396. Strictly Palindromic Number 解題心得

Not In My Back Yard | 2023-07-25 12:00:01 | 巴幣 0 | 人氣 135

題目連結:


題目意譯:
一個整數 n 如果滿足對於每個 b 進位制(b 介於 2(含)到 n - 2(含)之間),整數 n 於該進位制下之字串表示法皆為迴文,則此數將是「嚴格迴文」。

給定一整數 n,如果 n 是嚴格迴文則回傳真(True);反之,則回傳假(False)。

一個字串如果從左至右和從右至左讀都一樣,則為一個迴文。

限制:
4 ≦ n ≦ 10 ^ 5



範例測資:
範例 1:
輸入: n = 9
輸出: false
解釋: 在 2 進位制中:9 = 1001(2 進位),其為一個迴文。
在 3 進位制中:9 = 100(3 進位),其不是一個迴文。
因此,9 不是一個嚴格迴文,所以我們回傳假。
注意到在 4 、 5 、 6 和 7 進位制中,n = 9 也不是迴文。

範例 2:
輸入: n = 4
輸出: false
解釋: 我們只考慮 2 進位制:4 = 100(2 進位),其並非一個迴文。
因此我們回傳假。


解題思維:
這樣的數字不存在。就是這麼單純。

證明也很單純:
假設存在一個嚴格迴文數字 x。則根據定義 x 必須滿足在 x - 2 進位制下為一個迴文。而我們試圖把 x 轉成 x - 2 進位制可以發現該數必定以
100…002
之形式出現。而該數字字串並非迴文。除非 x = 4,在此例下該字串為 100,同樣也不是迴文。證畢。

因此我們可以直接回傳假,因為不可能出現真的情況。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作