2544. 交替数字和
题目:
给你一个正整数 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
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/alternating-digit-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:
首先,我们将数字n转换成字符串。
其次,我们对字符串中每一个位置进行遍历,并且在加入总和之前先乘一个符号位,这里的符号位初始为1,其次每次循环都令它乘一个-1即可。文章来源:https://www.toymoban.com/news/detail-549290.html
最后,返回最终答案即可。文章来源地址https://www.toymoban.com/news/detail-549290.html
代码:
class Solution {
public:
int alternateDigitSum(int n) {
string sup = to_string(n);
int sum = 0;
int flag = 1;
for(char c : sup)
{
int dig = c - '0';
int sign = flag * dig;
sum += sign;
flag *= -1;
}
return sum;
}
};
到了这里,关于入门力扣自学笔记272 C++ (题目编号:2544)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!