Vấn đề
Chúng tôi được yêu cầu viết một hàm JavaScript sử dụng hai chuỗi bảng chữ cái viết thường tiếng Anh, str1 và str2, làm đối số đầu tiên và đối số thứ hai tương ứng.
Hàm của chúng ta phải tìm và trả về tổng ASCII thấp nhất của các ký tự đã xóa để tạo hai chuỗi bằng nhau.
Ví dụ:nếu đầu vào của hàm là
Đầu vào
const str1 ='sea'; const str2 ='eat';
Đầu ra
const output =231;
Giải thích đầu ra
Xóa "s" khỏi "sea" sẽ thêm giá trị ASCII của "s" (115) vào tổng.
Xóa "t" khỏi "eat" sẽ thêm 116 vào tổng.
Cuối cùng, cả hai chuỗi đều bằng nhau và 115 + 116 =231 là tổng tối thiểu có thể đạt được.
Ví dụ
Sau đây là mã -
const str1 ='sea'; const str2 ='eat'; const MinimalSum =(str1 ='', str2 ='') => {const chartCode =(s ='') => {let code =0 for (const c of s) {code + =c.charCodeAt (0)} return code} let prev =new Array (str2.length + 1) .fill (0) for (let ind1 =str1.length; ind1> =0; ind1--) {const current =new Array (str2.length + 1) .fill (0) for (let ind2 =str2.length; ind2> =0; ind2--) {if (ind1 ===str1 .length) {current [ind2] =chartCode (str2.slice (ind2))} else if (ind2 ===str2.length) {current [ind2] =chartCode (str1.slice (ind1))} else if (str1 [ind1] ===str2 [ind2]) {current [ind2] =pres [ind2 + 1]} else {current [ind2] =Math.min (trước [ind2] + (str1 [ind1]). charCodeAt (0 ), current [ind2 + 1] + (str2 [ind2]). charCodeAt (0),)}} prev =current} return pres [0]} console.log (MinimumSum (str1, str2));Đầu ra
231