LeetCode 2544: Alternating Digit Sum (Math / Simulation)
English
Traverse digits from left to right. Start with sign +1, add current digit multiplied by the sign, then flip sign every step. This exactly matches the required alternating sum definition.
class Solution {
public int alternateDigitSum(int n) {
String s = Integer.toString(n);
int sign = 1, ans = 0;
for (int i = 0; i < s.length(); i++) {
ans += sign * (s.charAt(i) - '0');
sign = -sign;
}
return ans;
}
}func alternateDigitSum(n int) int {
s := strconv.Itoa(n)
sign, ans := 1, 0
for i := 0; i < len(s); i++ {
ans += sign * int(s[i]-'0')
sign = -sign
}
return ans
}class Solution {
public:
int alternateDigitSum(int n) {
string s = to_string(n);
int sign = 1, ans = 0;
for (char c : s) {
ans += sign * (c - '0');
sign = -sign;
}
return ans;
}
};class Solution:
def alternateDigitSum(self, n: int) -> int:
sign = 1
ans = 0
for ch in str(n):
ans += sign * int(ch)
sign *= -1
return ansvar alternateDigitSum = function(n) {
const s = String(n);
let sign = 1, ans = 0;
for (let i = 0; i < s.length; i++) {
ans += sign * Number(s[i]);
sign = -sign;
}
return ans;
};中文
从左到右遍历每一位数字。初始符号为 +1,每次把当前数字乘符号加到答案中,然后把符号翻转。这样就能直接得到题目要求的交替和。
class Solution {
public int alternateDigitSum(int n) {
String s = Integer.toString(n);
int sign = 1, ans = 0;
for (int i = 0; i < s.length(); i++) {
ans += sign * (s.charAt(i) - '0');
sign = -sign;
}
return ans;
}
}func alternateDigitSum(n int) int {
s := strconv.Itoa(n)
sign, ans := 1, 0
for i := 0; i < len(s); i++ {
ans += sign * int(s[i]-'0')
sign = -sign
}
return ans
}class Solution {
public:
int alternateDigitSum(int n) {
string s = to_string(n);
int sign = 1, ans = 0;
for (char c : s) {
ans += sign * (c - '0');
sign = -sign;
}
return ans;
}
};class Solution:
def alternateDigitSum(self, n: int) -> int:
sign = 1
ans = 0
for ch in str(n):
ans += sign * int(ch)
sign *= -1
return ansvar alternateDigitSum = function(n) {
const s = String(n);
let sign = 1, ans = 0;
for (let i = 0; i < s.length; i++) {
ans += sign * Number(s[i]);
sign = -sign;
}
return ans;
};