Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/2443.html
2443. Sum of Number and Its Reverse
- Difficulty: Medium.
- Related Topics: .
- Similar Questions: .
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, C++, Python)
-
class Solution { public boolean sumOfNumberAndReverse(int num) { for (int x = 0; x <= num; ++x) { int k = x; int y = 0; while (k > 0) { y = y * 10 + k % 10; k /= 10; } if (x + y == num) { return true; } } return false; } }
-
class Solution { public: bool sumOfNumberAndReverse(int num) { for (int x = 0; x <= num; ++x) { int k = x; int y = 0; while (k > 0) { y = y * 10 + k % 10; k /= 10; } if (x + y == num) { return true; } } return false; } };
-
class Solution: def sumOfNumberAndReverse(self, num: int) -> bool: return any(k + int(str(k)[::-1]) == num for k in range(num + 1))
-
func sumOfNumberAndReverse(num int) bool { for x := 0; x <= num; x++ { k, y := x, 0 for k > 0 { y = y*10 + k%10 k /= 10 } if x+y == num { return true } } return false }
-
function sumOfNumberAndReverse(num: number): boolean { for (let i = 0; i <= num; i++) { if (i + Number([...(i + '')].reverse().join('')) === num) { return true; } } return false; }
-
impl Solution { pub fn sum_of_number_and_reverse(num: i32) -> bool { for i in 0..=num { if i + { let mut t = i; let mut j = 0; while t > 0 { j = j * 10 + t % 10; t /= 10; } j } == num { return true; } } false } }
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).