Python:每日一题 360
本帖最后由 zltzlt 于 2020-3-27 18:26 编辑今天的题目:
给定两个由小写字母构成的字符串 a 和 b ,判断是否可以通过交换字符串 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
{:10_298:}欢迎大家一起答题!{:10_298:} 本帖最后由 一个账号 于 2020-3-27 18:33 编辑
def func(a, b):
if len(a) != len(b):
return False
else:
for i in range(len(a)-1):
new = a
new = list(new)
new, new = new, new
if "".join(new) == b:
return True
return False 一个账号 发表于 2020-3-27 18:23
解答错误
输入:a = "aa", b = "aa"
输出:False
预期结果:True zltzlt 发表于 2020-3-27 18:24
解答错误
输入:a = "aa", b = "aa"
def func(a, b):
if len(a) != len(b):
return False
else:
for i in range(len(a)):
new = a
new = list(new)
new, new = new, new
if "".join(new) == b:
return True
return False 本帖最后由 March2615 于 2020-3-27 18:26 编辑
if len(a) != len(b):
return False
temp = []
for i in range(len(a)):
if a != b:
temp.append(a)
temp.append(b)
if len(temp) != 4 or list(reversed(temp)) != temp:
return False
return True
March2615 发表于 2020-3-27 18:25
上一题还是359,突然变成了370
感谢指出,太粗心了{:10_250:}{:10_245:} zltzlt 发表于 2020-3-27 18:25
IndexError
输入了什么? 一个账号 发表于 2020-3-27 18:27
输入了什么?
a = "ab",b = "ab" March2615 发表于 2020-3-27 18:25
解答错误
输入:a = "aa", b = "aa"
输出:False
预期结果:True 本帖最后由 ouyunfu 于 2020-3-27 18:36 编辑
def f360(a:str,b:str)->bool:
m,n = len(a),len(b)
L=!=b]
if m!=n:
return False
elif a==b:
return True
elif a[:L]+a]+a+1:L]+a]+a+1:]==b:
return True
else: return False zltzlt 发表于 2020-3-27 18:27
a = "ab",b = "ab"
def func(a, b):
if len(a) != len(b):
return False
else:
for i in range(len(a)-1):
new = a
new = list(new)
new, new = new, new
if "".join(new) == b:
return True
return False 本帖最后由 zltzlt 于 2020-3-27 18:37 编辑
ouyunfu 发表于 2020-3-27 18:29
解答错误
输入:a = "ab", b = "ab"
输出:True
预期结果:False 本帖最后由 zltzlt 于 2020-3-27 18:46 编辑
一个账号 发表于 2020-3-27 18:29
解答错误
输入:a = "abab", b = "abab"
输出:False
预期结果:True zltzlt 发表于 2020-3-27 18:36
解答错误
输入:a = "abab", b = "abab"
你的题目没说 本帖最后由 永恒的蓝色梦想 于 2020-3-27 19:10 编辑
class Solution:
def buddyStrings(self, a: str, b: str) -> bool:
count=0
temp=False
if len(a)!=len(b):
return False
elif a==b:
return len(set(a))!=len(a)
for a,b in zip(a,b):
if a!=b:
if temp:
return False
elif count:
if a==charA and b==charB:
temp=True
else:
return False
else:
count=1
charA=b
charB=a
return temp 永恒的蓝色梦想 发表于 2020-3-27 18:38
占楼
{:10_256:} zltzlt 发表于 2020-3-27 18:37
?
原题是:给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。 zltzlt 发表于 2020-3-27 18:36
解答错误
输入:a = "abab", b = "abab"
这不是可以把a中的两个a交换位置吗?
感觉今天的题想不到的情况有点多啊 zltzlt 发表于 2020-3-27 18:38
写完🌶{:10_256:} 本帖最后由 一个账号 于 2020-3-27 18:53 编辑
class Solution:
def buddyStrings(self, A: str, B: str) -> bool:
if len(A) != len(B): return False
if A == B and len(set(A)) < len(A): return True
dif = [(a, b) for a, b in zip(A, B) if a != b]
return len(dif) == 2 and dif == dif[::-1]