LeetCode 66. Plus One

来源:互联网 发布:天音淘宝复制 编辑:程序博客网 时间:2024/06/07 23:45

题意

将一个存于数组中组成的数字加一

思路

直接模拟

代码

class Solution {public:    vector<int> plusOne(vector<int>& digits) {        string num1 = "";        for(int i = 0; i < digits.size(); i++) {            num1 += digits[i] + '0';        }        num1 = add(num1, "1");        vector<int>ans;        for(int i = 0; i < num1.length(); i++){            ans.push_back(num1[i] - '0');        }        return ans;    }private:    string add(string A, string B){        int lenA = A.length();        int lenB = B.length();        string ans = "";        lenA--;lenB--;        int pos = 0;        while(lenA >= 0 && lenB >= 0){            int sum = A[lenA--] + B[lenB--] - '0' - '0' + pos;            ans += sum % 10 + '0';            pos = sum / 10;        }        while(lenA >= 0){            int sum = A[lenA--]- '0' + pos;            ans += sum % 10 + '0';            pos = sum / 10;        }        while(lenB >= 0){            int sum = B[lenB--]- '0' + pos;            ans += sum % 10 + '0';            pos = sum / 10;        }        if(pos) ans += pos + '0';        reverse(ans.begin(), ans.end());        return ans;    }};
原创粉丝点击