Chúng ta cần viết một hàm JavaScript nhận vào hai chuỗi, str1 và str2 đại diện cho hai số.
Không chuyển đổi toàn bộ chuỗi thành số tương ứng, hàm của chúng ta nên tính tổng của hai số chuỗi đó và trả về kết quả dưới dạng chuỗi.
Ví dụ:
Nếu hai chuỗi là:
const str1 = '234'; const str2 = '129';
Thì đầu ra nên là 363.
Ví dụ
Dưới đây là mã nguồn:
const str1 = '234'; const str2 = '129'; const addStringNumbers = (str1, str2) => { let ind1 = str1.length - 1, ind2 = str2.length - 1, res = "", carry = 0; while(ind1 >= 0 || ind2 >= 0 || carry) { const val1 = str1[ind1] || 0; const val2 = str2[ind2] || 0; let sum = +val1 + +val2 + carry; carry = sum > 9 ? 1 : 0; res = sum % 10 + res; ind1--; ind2--; }; return res; }; console.log(addStringNumbers(str1, str2));Kết quả
Đầu ra trên console:
363
Giải thích: Mô phỏng cộng thủ công từ phải sang trái (least significant digit). Xử lý carry. Hoạt động với số lớn vượt quá Number.MAX_SAFE_INTEGER. LeetCode 415 "Add Strings".