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).

All Problems

All Solutions