859. 亲密字符串(Python)

作者: 玖月晴 | 来源:发表于2019-05-29 11:42 被阅读0次

题目

难度:★★☆☆☆
类型:字符串

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

提示
0 <= A.length <= 20000
0 <= B.length <= 20000
A 和 B 仅由小写字母构成。

示例

示例 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

解答

这里参考一个评论中的解法:

class Solution(object):
    def buddyStrings(self, A, B):

        # 长度不同直接false
        if len(A) != len(B): return False

        # 由于必须交换一次,在相同的情况下,交换相同的字符
        if A == B and len(set(A)) < len(A): return True

        # 使用 zip 进行匹配对比,挑出不同的字符对
        dif = [(a, b) for a, b in zip(A, B) if a != b]

        # 对数只能为2,并且对称,如 (a,b)与(b,a)
        return len(dif) == 2 and dif[0] == dif[1][::-1]

如有疑问或建议,欢迎评论区留言~

相关文章

  • 859. 亲密字符串(Python)

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

  • 859. 亲密字符串

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

  • 859. 亲密字符串

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

  • 教3妹学编程-859. 亲密字符串

    2哥:3妹,别看肥皂剧了,今天我们来做一个算法题。 3妹关掉了电视,高兴的跑过来。3妹:好呀好呀,java的数据结...

  • python基础知识(3)

    python字符串 python转义字符 python字符串运算符 python字符串格式化 python格式化操...

  • python count()方法详解

    Python count()方法 Python 字符串 描述 Python count() 方法用于统计字符串里某...

  • python字符串格式化符号与内建函数资料表

    python字符串格式化符号: Python 的字符串内建函数 Python 的字符串常用内建函数如下:

  • 字符串操作方法

    Python3字符串 Python访问字符串中的值 Python中的字符串用单引号(')或双引号(")括起来,同时...

  • python字符串相关函数

    Python3字符串 Python访问字符串中的值 Python中的字符串用单引号(')或双引号(")括起来,同时...

  • 2018-09-28自学习资料

    Python3字符串 Python访问字符串中的值 Python中的字符串用单引号(')或双引号(")括起来,同时...

网友评论

    本文标题:859. 亲密字符串(Python)

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