老婆出轨 发表于 2024-11-8 10:27:54

LeetCode 2544[交替数字和]

标题

链接

LeetCode 2544[交替数字和]
详情

https://img2024.cnblogs.com/blog/3512406/202411/3512406-20241108103721976-1930274259.png
实例

https://img2024.cnblogs.com/blog/3512406/202411/3512406-20241108103727701-592004583.png
提示

https://img2024.cnblogs.com/blog/3512406/202411/3512406-20241108103732321-1429012318.png
题解

思路

依次求出各位数字,然后进行计算
循环找出各位数字:(循环体如下)
  将数字对10取余得到对应位数的数字,加入到容器 numVec
  数字除以10,得到新的数字,此数字是不包含已获取数字的位数
循环退出的条件:数字即是0
循环退出后 numVec 按照下标由小到大,存储着数字的位数由低到高
 
定义一个布偶型变量 isPos,作为其符号是否是正号的标记位:
  true 为正号,即加上此数值
  false为负号,即减去此数值
从容器末了一个元素往前遍历,即从高位往低位遍历,isPos 初始值为 true
每次遍历后 isPos 均取反
对各位数字求和末了返回
代码

class Solution {
public:
    int alternateDigitSum(int n) {
      
      vector<int> numVec;

      while (n)
      {
            numVec.push_back(n % 10);
            n /= 10;
      }

      bool isPos = true;
      int iRet = 0;
      
      for (int i = numVec.size() - 1; i >= 0; i--)
      {
            if (isPos)
                iRet += numVec.at(i);
            else
                iRet -= numVec.at(i);
            
            isPos = !isPos;
      }

      return iRet;
    }
};
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: LeetCode 2544[交替数字和]