给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。
交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i != j ,接着交换 s[i] 和 s[j] 处的字符。
例如,在 "abcd" 中交换下标 0 和下标 2 的元素可以生成 "cbad" 。
解法
暴力遍历,注意好不进行重复的交换后不管三七二十一直接交换,判断是否和goal是否相同 时间复杂度肯定是O(n方) 力扣上的用例过不全
var buddyStrings = function(s, goal) {
if (s.length != goal.length) {
return false;
}
let arrS=s.split("");
for(let i=0;i<arrS.length-1;i++){
for(let j=i+1;j<arrS.length;j++){
let temp=arrS[i];
arrS[i]=arrS[j];
arrS[j]=temp;
if(arrS.join("")==goal){
return true;
}
else{
temp=arrS[i];
arrS[i]=arrS[j];
arrS[j]=temp;
}
}
}
return false;
};