资讯专栏INFORMATION COLUMN

亲密字符串

骞讳护 / 2894人阅读

摘要:在上看到亲密字符串,接下来对这个词进一步的了解,从而写下了这篇笔记。二是这两个字符串不相等的情况。然后统计字母不一样的数量是否为只需要交换两个字母的位置,如果大于则不是亲密字符串。

在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)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96115.html

相关文章

  • leetcode每日一题-859:亲密符串

    摘要:每日一题亲密字符串链接亲密字符串题目分析题目本身不是很难,但是有不少需要注意的地方,逐一来进行分析。首先如果两个字符串不一样长,那么肯定是。 leetcode每日一...

    张迁 评论0 收藏0
  • LeetCode 859 亲密符串[模拟] HERODING的LeetCode之路

    摘要:解题思路一道并不简单的模拟题,需要考虑的情况总结下来有三种长度不同返回完全相同且有重复字符返回字符串有不相等的两个地方需要查看它们交换后是否相等即可。 解题思路:...

    aisuhua 评论0 收藏0
  • 与 Rust 社区亲密接触!首届 RustCon Asia 来了

    摘要:来了由秘猿科技与联合主办,亚洲第一届大会将于月日在中国北京正式开启。将是一次亚洲社区的大聚会,也因为此次大会,亚洲本土的社区连接到了全球其它地区的社区。未来,我们将推进到亚洲的其他国家,更好的促进当地社区与全球社区的合作和互助。 showImg(https://segmentfault.com/img/bVbqUjV?w=1089&h=647); RustCon Asia 来了!由秘猿...

    Cristalven 评论0 收藏0
  • 与MongoDB的第一次亲密接触

    摘要:写在前面的是目前在行业非常流行的一种非关系型数据库其灵活的数据存储方式备受当前从业人员的青睐。很好的实现了面向对象的思想思想在中每一条记录都是一个对象。 写在前面的 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录...

    crossoverJie 评论0 收藏0
  • 笔记 编写可读性代码的艺术

    阅读原文 showImg(https://segmentfault.com/img/remote/1460000013763036?w=196&h=257); 1. 代码应当易于理解 唯一标准:让别人理解的时间最小 2. 把信息装到名字里 选择专业的词 避免泛泛的名字 使用具体的名字代替抽象的名字 为名字携带更多的信息 名字的作用域越大,最好名字越长 丢掉没用的词 单词 更多选择 ...

    xiaochao 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<