SOURCE

/**
 * 给你一个字符串 s ,根据下述规则反转字符串:
所有非英文字母保留在原有位置。
所有英文字母(小写或大写)位置反转。
返回反转后的 s 。
输入:"a-bC-dEf-gh8Ij"
输出:"j-Ih-gfE-dC8ba"
 */
// const checkStr = (s) => {
//     return /[a-z]/i.test(s);
// }

// const reverseStr = (str) => {
//     const arrStr = str.split('');
//     const len = arrStr.length;
//     let i = 0;
//     let j = len - 1;
//     while (i <= j) {
//         if (checkStr(arrStr[i]) && checkStr(arrStr[j])) {
//             [arrStr[i], arrStr[j]] = [arrStr[j], arrStr[i]];
//             i += 1;
//             j -= 1;
//         } else {
//             if (!checkStr(arrStr[i])) {
//                 i += 1;
//             }
//             if (!checkStr(arrStr[j])) {
//                 j -= 1;
//             }
//         }
//     }
//     return arrStr.join('');
// }
// console.log(reverseStr('[-bC-dEf-gh8Ij'));

/**
 * 输入是两个已经超过js精度的数,输出是这两个数的和
 * case1:'899879797987987','87987987987982'
 */

const bigNumberSum = (str1, str2) => {
    const arr1 = str1.split('');
    const arr2 = str2.split('');
    const result = [];
    let temp = 0;

    const len1 = arr1.length;
    const len2 = arr2.length;

    const len = Math.max(len1, len2);

    for (let i = 0; i < len; i++) {
        const item1 = arr1[i];
        const item2 = arr2[i];

        if (item1 && item2) {
            const sum = Number(item1) + Number(item2) + temp;
            temp = (sum / 10) | 0
            result.unshift(sum % 10);
        } else {
            if (item1 && temp) {
                const sum = Number(item1) + temp;
                temp = (sum / 10) | 0
                result.unshift(sum % 10);
            } else if (item2 && temp) {
                if (item2 && temp) {
                    const sum = Number(item2) + temp;
                    temp = (sum / 10) | 0
                    result.unshift(sum % 10);
                }
            } else {
                const target = item1 || item2;
                result.unshift(Number(target));
            }
        }
    }
    if (temp) {
        result.unshift(temp);
    }
    return result.join('');
}
console.log(bigNumberSum('99', '9'), 99 + 9)
console 命令行工具 X clear

                    
>
console