LeetCode 2544[交替數字和]

EricsT發表於2024-11-08

題目

連結

LeetCode 2544[交替數字和]

詳情

LeetCode 2544[交替數字和]

例項

LeetCode 2544[交替數字和]

提示

LeetCode 2544[交替數字和]

題解

思路

依次求出各位數字,然後進行計算

迴圈找出各位數字:(迴圈體如下)

  將數字對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;
    }
};

相關文章