859. 亲密字符串
给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。
示例 1:
输入: A = "ab", B = "ba"
输出: true示例 2:
输入: A = "ab", B = "ab"
输出: false示例 3:
输入: A = "aa", B = "aa"
输出: true示例 4:
输入: A = "aaaaaaabc", B = "aaaaaaacb"
输出: true示例 5:
输入: A = "", B = "aa"
输出: false
题解
/**
* @param {string} A
* @param {string} B
* @return {boolean}
*/
var buddyStrings = function(A, B) {
if(A.length!=B.length){
return false
}
if(A==B&&[...new Set(A.split(''))].length!=A.length){
return true
}
if(A.split('').sort().join('')!=B.split('').sort().join('')){
return false
}
let num=0
for(let i=0;i<A.length;i++){
if(A[i]!=B[i]){
num++
if(num>2){
return false
}
}
}
return num==2?true:false
};