好久不见高精度相关的题目了

#include <iterator>
#include <string>
#include<cctype>
class Solution {
public:
    
    // 高精
    // 此题没有涉及到正负号的问题
    string solve(string s, string t) {
        string res = "";
        int n = s.size();
        int m = t.size();

        // 反转
        reverse(s.begin(), s.end());
        reverse(t.begin(), t.end());
        int i = 0, j = 0;
        int flag = 0; // 标记是否进位
        int r = 0;
        int ds = 0, dt = 0;
        while(i < n || j < m){
            ds = i == n ? 0 : s[i] - '0';
            dt = j == m ? 0 : t[i] - '0';
            r = ds + dt + flag;
            res += (r % 10 + '0');
            flag = r / 10;
            
            i = i == n ? n : i + 1;
            j = j == m ? m : j + 1;
        }

        if(flag){
            res += '1';
        }
        reverse(res.begin(), res.end());
        return res;
    }


};