Skip to content

Latest commit

 

History

History

2544

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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.

Return the sum of all digits with their corresponding sign.

 

Example 1:

Input: n = 521
Output: 4
Explanation: (+5) + (-2) + (+1) = 4.

Example 2:

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

Example 3:

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

 

Constraints:

  • 1 <= n <= 109

 

Companies: eBay

Related Topics:
Math

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/alternating-digit-sum
// Author: github.com/lzl124631x
// Time: O(lgN)
// Space: O(1)
class Solution {
public:
    int alternateDigitSum(int n) {
        int ans = 0, cnt = 0;
        while (n) {
            int d = n % 10;
            ans += cnt % 2 == 0 ? d : -d;
            n /= 10;
            ++cnt;
        }
        return cnt % 2 == 0 ? -ans : ans;
    }
};