难度:简单
给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。
如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。
示例 1:
输入:s1 = "bank", s2 = "kanb" 输出:true 解释:例如,交换 s2 中的第一个和最后一个字符可以得到 "bank"示例 2:
输入:s1 = "attack", s2 = "defend" 输出:false 解释:一次字符串交换无法使两个字符串相等示例 3:
输入:s1 = "kelb", s2 = "kelb" 输出:true 解释:两个字符串已经相等,所以不需要进行字符串交换示例 4:
输入:s1 = "abcd", s2 = "dcba" 输出:false提示:
1 <= s1.length, s2.length <= 100
s1.length == s2.length
s1
和s2
仅由小写英文字母组成题解:
class Solution: def areAlmostEqual(self, s1: str, s2: str) -> bool: from collections import Counter s1_dict = collections.Counter(s1) s2_dict = collections.Counter(s2) if len(s1) != len(s2) or s1_dict != s2_dict: return False c = 0 for i, j in zip(s1, s2): if i != j: c += 1 if c <= 2: return True else: return False
leetcode:1790. 仅执行一次字符串交换能否使两个字符串相等
最新推荐文章于 2022-10-12 14:01:45 发布