美文网首页
亲密字符串

亲密字符串

作者: qfstudy | 来源:发表于2018-07-14 11:39 被阅读0次

在leetCode上看到亲密字符串,接下来对这个词进一步的了解,从而写下了这篇笔记。

亲密字符串

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

提示:

  • A和B仅由小写字母构成
  • 只交换两个字母
  • A和B的长度相等

实现思路

亲密字符串几乎是匹配的,这两个字符串只有两个索引的值不一样(两个字符串不是完全相等的情况下)

一共有两种情况

  • 一是两个字符串完全相等。
    在这种情况下,我们需要在一个字符串中寻找两个相同的字母的索引,交换这两个字母的位置,这两个字符串还是相等的。

  • 二是这两个字符串不相等的情况。
    首先,比较这两个字符串,找出这两个字符串不相等的字母的位置。然后统计字母不一样的数量是否为2(只需要交换两个字母的位置),如果大于2则不是亲密字符串。找到不一样的字母以后,在字符串A中交换这两个字母的位置,然后比较是否相等,相等则是亲密字符串

var A='abfdbc'
var B='abcdbf'
function buddyStrings(A, B) {
    if (A.length != B.length) {
        return false;
    }
    if (A === B) {
        for (let i = 0; i < A.length; i++) {
            for (let j = i + 1; j < A.length; j++) {
                if (A[i] === A[j]) {
                    var charA = A[i]
                    return A[i]
                }
            }
        }
    } else {
        var count = 0
        var aString = []
        var bString = []
        for (let i = 0; i < A.length; i++) {
            if (A.charAt(i) !== B.charAt(i)) {
                aString[count] = A.charAt(i)
                bString[count] = B.charAt(i)
                count += 1
                if (count > 2) {
                    return false
                }
            }
        }
        if (aString[1] === bString[0] && aString[0] === bString[1] && count < 3) {
            return aString
        }
        else {
            return false
        }
    }
}
var a = buddyStrings(A, B)
console.log(a)

相关文章

  • 亲密字符串

    在leetCode上看到亲密字符串,接下来对这个词进一步的了解,从而写下了这篇笔记。 亲密字符串 给定两个由小写字...

  • 亲密字符串

    亲密字符串 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的...

  • 亲密字符串

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/buddy-...

  • 859. 亲密字符串

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

  • 859. 亲密字符串

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

  • 859. 亲密字符串(Python)

    题目 难度:★★☆☆☆类型:字符串 给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两...

  • JS 笔试题 —— 亲密字符串

    题目: 给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就...

  • 2021-11-23 859 亲密字符串

    思路的话分两种情况:1.当两个字符串相同时,直接确定单个字符串如s上是否有相同的两个字符,这是由于相同的时候单字符...

  • 亲密关系(上下册)

    亲密关系上册:亲密关系的致命杀手 亲密关系下册:亲密关系的修复心法 亲密关系上册:亲密关系的致命杀手 亲密关系杀手...

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

网友评论

      本文标题:亲密字符串

      本文链接:https://www.haomeiwen.com/subject/avaepftx.html