目录链接:
力扣编程题-解法汇总_分享+记录-CSDN博客
GitHub同步刷题项目:
https://github.com/September26/java-algorithms
原题链接:力扣
描述:
给你一个正整数 n
。n
中的每一位数字都会按下述规则分配一个符号:
- 最高有效位 上的数字分配到 正 号。
- 剩余每位上数字的符号都与其相邻数字相反。
返回所有数字及其对应符号的和。
示例 1:
输入:n = 521 输出:4 解释:(+5) + (-2) + (+1) = 4
示例 2:
输入:n = 111 输出:1 解释:(+1) + (-1) + (+1) = 1
示例 3:
输入:n = 886996 输出:0 解释:(+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0
提示:
1 <= n <= 109
解题思路:
* 解题思路:
* 把n上的每一位数字,添加到list中,每次插入到头节点。
* 然后遍历list,偶数位累加,奇数位累减即可。
代码:
class Solution2544
{
public:
int alternateDigitSum(int n)
{
vector<int> list;
while (n > 0)
{
list.insert(list.begin(), n % 10);
n = n / 10;
}
int sum = 0;
for (int i = 0; i < list.size(); i++)
{
if (i % 2 == 0)
{
sum += list[i];
}
else
{
sum -= list[i];
}
}
return sum;
}
};