Given a non-negative integer num
, return true
if num
can be expressed as the sum of any non-negative integer and its reverse, or false
otherwise.
Example 1:
Input: num = 443 Output: true Explanation: 172 + 271 = 443 so we return true.
Example 2:
Input: num = 63 Output: false Explanation: 63 cannot be expressed as the sum of a non-negative integer and its reverse so we return false.
Example 3:
Input: num = 181 Output: true Explanation: 140 + 041 = 181 so we return true. Note that when a number is reversed, there may be leading zeros.
Constraints:
0 <= num <= 105
Companies: Amazon
Related Topics:
Math, Enumeration
Similar Questions:
// OJ: https://leetcode.com/problems/sum-of-number-and-its-reverse
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(1)
class Solution {
int reverse(int n) {
int ans = 0;
while (n) {
ans = ans * 10 + n % 10;
n /= 10;
}
return ans;
}
public:
bool sumOfNumberAndReverse(int n) {
for (int i = 0; i <= n; ++i) {
if (i + reverse(i) == n) return true;
}
return false;
}
};