LeetCode 1247 Javascript

299 阅读1分钟

思路

不算原创思路
leetcode-cn.com/problems/mi…

代码

/**
 * @param {string} s1
 * @param {string} s2
 * @return {number}
 */
var minimumSwap = function(s1, s2) {
    let len = s1.length;
    if (s2.length !== len) {
        return -1;
    }
    let dif1 = 0;
    let dif2 = 0;
    for(let i = 0; i < len; ++i) {
        if (s1[i] === 'x') {
            if (s1[i] !== s2[i])
                dif1 ++;
        } else {
            if (s1[i] !== s2[i])
                dif2 ++;
        }
    }
    if ((dif1 + dif2) % 2 !== 0)
        return -1;
    return dif1 % 2 + dif2 % 2 + Math.floor(dif1 / 2) + Math.floor(dif2 / 2)
};