題目連結(jié):
題目意譯:
你被給定一整數(shù) n。我們可以將其位數(shù)重新排列(包含原先的順序),使得開頭位數(shù)不為零。
回傳真(True),若且唯若我們可以把產(chǎn)生的數(shù)字為 2 的某一個冪次。
限制:
1 ≦ n ≦ 10 ^ 9
範例測資:
範例 1:
輸入: n = 1
輸出: true
範例 2:
輸入: n = 10
輸出: false
解題思維:
根據(jù) n 的數(shù)值範圍,n 只有可能變成是 2 ^ 0 到 2 ^ 30。
因此我們只要窮舉出 2 ^ 0 、 2 ^ 1 、……、 2 ^ 30 每一個二的冪次,並把每個冪次的位數(shù)按照某個順序排序(例如說由小排到大),然後跟以相同順序排序的 n 之位數(shù)去比較有沒有完全一致即可。如果有某個冪次與 n 排序後的位數(shù)相同,則代表 n 可以變成該冪次,因此回傳真;反之,如果不存在任何冪次滿足此條件,則回傳假。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。