Problem
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 <= 10^5
Solution (Java)
class Solution {
static HashSet<Integer> set = new HashSet<>();
static {
for(int i=0;i<=100000;i++){
set.add(i+Integer.parseInt(new StringBuilder(Integer.toString(i)).reverse().toString()));
}
}
public boolean sumOfNumberAndReverse(int num) {
return set.contains(num);
}
}
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).