題目連結:
題目意譯:
給定一非負整數 num,如果 num 可以被表示為任一個非負整數與其反轉位數後的數字之總和,則回傳真(True);反之,則回傳假(False)。
限制:
0 ≦ num ≦ 10 ^ 5
範例測資:
範例 1:
輸入: num = 443
輸出: true
解釋: 172 + 271 = 443,所以我們回傳真。
範例 2:
輸入: num = 63
輸出: false
解釋: 63 無法被表示為一個非負整數與其反轉位數後的數字之總和,所以我們回傳假。
範例 3:
輸入: num = 181
輸出: true
解釋: 140 + 041 = 181,所以我們回傳真。注意到當一個數字被反轉位數後,可能存在著前導零。
解題思維:
由於 num 最大也只有 10 ^ 5,因此直接建表即可(Leetcode 建表方式參見
這題)。而我們就單純地掃過 1 ~ 100000,並對於每個數字 i 將其反轉位數後的數字 i' 加總便可以得到當被詢問到 i + i' 時,應回傳真。
因此最後建完表只要跟直接查表去對每一筆詢問找出對應的結果即可。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。