Menu Close

Leetcode 2544: Alternating Digit Sum Solution

Here, we will see how to solve Alternating Digit Sum Solution of leet code 2544 problem.

You are given a positive integer n. Each digit of n has a sign according to the following rules:

  • The most significant digit is assigned a positive sign.
  • Each other digit has an opposite sign to its adjacent digits.

You have to return the sum of all digits with their corresponding sign.

Example 1:

Input: num = 123
Output: 2
Explanation: (+1) + (-2) + (+3) = 2

Example 2:

Input: num = 886996
Output: 0
Explanation: (+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0.

Alternating Digit Sum Solution in C++:

Here, we will be solving problem in multiple ways with code.

C++ code 1:

class Solution {
public:
    int alternateDigitSum(int n) {
        
        int k = 1, ans = 0;
        
        while(n>0)
        {
            ans += (n%10) * k;
            n = n / 10;
            k *= -1;
        }
        
        return -k * ans;
    }
};

C++ code 2:

class Solution {
public:
    int alternateDigitSum(int n) {
        int total_digit = 0, tmp = n, sign, sum = 0;
        
        while(tmp) {
            total_digit += 1;
            tmp /= 10;
        }
        if (total_digit % 2 == 1) {
            sign = 1;
        } else {
            sign = -1;
        }
        while(n) {
            sum += (n % 10) * sign;
            n /= 10;
            sign *= -1;
        }
        return sum;
    }
};

Output:

Input: n = 111
Output: 1
Explanation: (+1) + (-1) + (+1) = 1.

Time complexity: O(n)

Space complexity: O(1)

To check more leetcode problem’s solution. Pls click given below link:

https://www.techieindoor.com/category/leetcode/

https://www.techieindoor.com/category/interview-questions/

Posted in C++, Easy, Leetcode

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us