Leetcode - Add Strings

作者: Richardo92 | 来源:发表于2016-10-13 10:14 被阅读13次

My code:

public class Solution {
    public String addStrings(String num1, String num2) {
        StringBuilder sb = new StringBuilder();
        int carry = 0;
        int i = num1.length() - 1;
        int j = num2.length() - 1;
        while (i >= 0 || j >= 0) {
            if (i < 0) {
                int number = num2.charAt(j) - '0';
                int sum = number + carry;
                carry = sum / 10;
                sb.append(sum % 10);
                j--;
            }
            else if (j < 0) {
                int number = num1.charAt(i) - '0';
                int sum = number + carry;
                carry = sum / 10;
                sb.append(sum % 10);
                i--;
            }
            else {
                int number1 = num1.charAt(i) - '0';
                int number2 = num2.charAt(j) - '0';
                int sum = number1 + number2 + carry;
                carry = sum / 10;
                sb.append(sum % 10);
                i--;
                j--;
            }
        }
        
        if (carry != 0) {
            sb.append(carry);
        }
        
        return sb.reverse().toString();
    }
}

和 add list 差不多。

Anyway, Good luck, Richardo! -- 10/12/2016

相关文章

网友评论

  • 63140ad439b1:Do it elegantly : )
    Good luck for your job hunting

    class Solution(object):
    def addStrings(self, num1, num2):
    i = len(num1) - 1
    j = len(num2) - 1
    carry = 0
    res = []

    while i >=0 or j >= 0:
    a = ord(num1[i]) - ord('0') if i >= 0 else 0
    b = ord(num2[j]) - ord('0') if j >= 0 else 0

    res.append(str((a + b + carry) % 10))
    carry = (a + b + carry) / 10

    i -= 1
    j -= 1

    if carry:
    res.append('1')

    return ''.join(reversed(res))

本文标题:Leetcode - Add Strings

本文链接:https://www.haomeiwen.com/subject/svdwyttx.html