LintCode 1510. 亲密字符串 JavaScript算法

描述

给定两个由小写字母构成的字符串A 和B,只要我们可以通过交换A中的两个字母得到与B相等的结果,就返回true;否则返回false。

说明

1.0 <= A.length <= 20000
2.0 <= A.length <= 20000
3.A and B consist only of lowercase letters.

样例

- Example 1:

Input: A = "ab", B = "ba"
Output: true

- Example 2:

Input: A = "ab", B = "ab"
Output: false

- Example 3:

Input: A = "aa", B = "aa"
Output: true

- Example 4:

Input: A = "aaaaaaabc", B = "aaaaaaacb"
Output: true

- Example 5:

Input: A = "", B = "aa"
Output: false

解析

buddyStrings = function (A, B) {
  if(A.length !== B.length) return false
  if(A === B) {
    return A.length > new Set(A).size
  }
  a = '',b = ''
  for(let i = 0; i < A.length; i++){
    if(A[i] !== B[i]){
      a = A[i] + a
      b += B[i]
    }
  }
  return a.length === 2 && a === b
}

运行结果

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/SmallTeddy/article/details/108461433