ouyunfu
发表于 2020-3-27 18:46:36
更正def f360(a:str,b:str)->bool:
m,n = len(a),len(b)
L=!=b]
if m!=n:
return False
elif a==b:
if list(a)==list(reversed(a)):
return True
else: return False
elif a[:L]+a]+a+1:L]+a]+a+1:]==b:
return True
else: return False
zltzlt
发表于 2020-3-27 18:47:41
ouyunfu 发表于 2020-3-27 18:46
更正
解答错误
输入:a = "", b = ""
输出:True
预期结果:False
ouyunfu
发表于 2020-3-27 18:51:27
zltzlt 发表于 2020-3-27 18:47
解答错误
输入:a = "", b = ""
谢谢提示,已改
def f360(a:str,b:str)->bool:
m,n = len(a),len(b)
L=!=b]
if m!=n:
return False
elif a==b:
if a=='':
return True
elif list(a)==list(reversed(a)):
return True
else: return False
elif a[:L]+a]+a+1:L]+a]+a+1:]==b:
return True
else: return False
March2615
发表于 2020-3-27 18:54:33
本帖最后由 March2615 于 2020-3-27 19:09 编辑
zltzlt 发表于 2020-3-27 18:28
解答错误
输入:a = "aa", b = "aa"
def daily360(a: str, b: str) -> bool:
# 如果两个字符串不同
# 1. 长度不同 -> 不可互换
# 2. 不同的地方大于2 -> 不可互换
# 3. 不同的地方字母不同 -> 不可互换
# 如果两个字符串相同
# 1. 字符串内有相同字符 -> 可以互换
# 2. 字符串内无相同字符 -> 不可互换
# 3. 字符串长度小于2 -> 不可互换
if a != b:
if len(a) != len(b): # 长度不同
return False
temp = []
for i in range(len(a)):
if a != b:
temp.append(a)
temp.append(b)
# !=4->不同的地方大于2
# 不是对称的说明不同的地方字母不同
if len(temp) != 4 or list(reversed(temp)) != temp:
return False
else:
return True
else:
if len(a) < 2:
return False
temp = {}
for each in a:
if each in temp:
return True
temp = 1
return False
抱歉注释有点多,怕没考虑到某些情况
塔利班
发表于 2020-3-27 19:38:02
def f360(a,b):
if len(a)!=len(b):
return False
t=0
l=[]
for i in range(len(a)):
if a!=b:
t+=1
if t>2:
return False
l.append(,b])
if not t:
return True
elif t==2:
return l==l[-1][::-1]
else:
return False
TJBEST
发表于 2020-3-27 20:43:22
本帖最后由 TJBEST 于 2020-3-27 21:19 编辑
来个没效率的
def fun360(a,b):
if len(a) != len(b):
return False
M = len(a)
index_arr = !=b]
if len(index_arr) == 2:
if a] == b] and a] == b]:
return True
else:
return False
elif len(index_arr) == 0:
for index in range(0,M-1):
if a == a:
return True
return False
else:
return False
whosyourdaddy
发表于 2020-3-27 21:16:53
def func360(a,b):
if len(a) != len(b):
return False
count = 0
temp = []
for i in range(len(a)):
if a != b:
print("different")
count +=1
if count > 2:
return False
temp.append(a)
temp.append(b)
if count ==1:
return False
elif count ==0:
tempa = "".join(set(a))
if len(tempa) != len(a):
return True
return False
elif count == 2:
if temp[:2] == temp[:1:-1]:
return True
return False
BngThea
发表于 2020-3-27 21:23:12
本帖最后由 BngThea 于 2020-3-30 19:14 编辑
def cmp(str1,str2):
if len(str1) != len(str2):
return False
elif set(str1) != set(str2):
return False
else:
tmp=[(x,y) for x,y in zip(str1,str2) if x != y]
if not tmp:
if len(set(str1)) == len(str1):
return False
else:
return True
return len(tmp) == 2 and tmp[::-1] == tmp
pass
Herry2020
发表于 2020-3-27 21:41:36
c = "abcd"
d = "abcd"
def fun360(a,b):
a = list(a)
b = list(b)
list1 = []
list2 = []
n = len(a)
m = len(d)
result = False
if n != m:
result = False
elif a == b:
for i in range(n):
if a.count(a) >= 2:
result = True
else:
for i in range(n):
if a != b:
list1.append((a))
list2.append(b)
if len(list1) != len(list2) or len(list1) != 2 :
result = False
else:
if list1 == list2 and list1 == list2:
result =True
return result
print(fun360(c, d))
旅途Z
发表于 2020-3-28 11:08:26
def switch_equal(str1, str2):
length = len(str1)
diff_list = []
if length != len(str2):
return False
for index in range(length):
if str1 != str2:
diff_list.append(index)
if len(diff_list) == 0:
return str1 == "" or len(str1) != len(set(str1))
elif len(diff_list) == 2:
return str1] == str2] and str1] == str2]
else:
return False
flamezyy
发表于 2020-3-28 13:22:14
本帖最后由 flamezyy 于 2020-3-28 13:31 编辑
def f360(a,b):
base = []
comp = []
times = 0
if (len(a) != len(b)) or (len(a) == 0):
return False
if a == b:
return True
for i in range(len(a)):
if a != b:
base.append(a)
comp.append(b)
times += 1
if times > 2:
return False
comp.reverse()
if base == comp:
return True
else:
return False
mdphd
发表于 2020-3-28 20:24:08
def f360(a,b):
if len(a) != len(b):
return False
else:
d = []
for i in range(len(a)):
if a != b:
d.append(i)
c = len(d)
if c == 0:
if len(a) == len(set(a)):
return False
else:
return True
elif c == 2 and a] == b] and a] == b]:
return True
else:
return False
l0stparadise
发表于 2020-3-28 20:48:28
本帖最后由 l0stparadise 于 2020-3-28 21:20 编辑
def f360(a,b):
if len(a) != len(b):
return False
if len(a) < 2 or len(b) < 2:
return False
list_a_dif = []
list_b_dif = []
list_a_same = []
list_b_same = []
for i in range(len(a)):
if a != b:
list_a_dif.append(a)
list_b_dif.append(b)
else:
list_a_same.append(a)
list_b_same.append(b)
if len(list_a_dif) != len(list_b_dif):
return False
if len(list_a_dif) == len(list_b_dif) == 0:
if len(set(list_a_same)) < len(list_a_same):
return True
else:
return False
if len(list_a_dif) == len(list_b_dif) == 2:
if list_a_dif == list_b_dif[::-1]:
return True
else:
return False
else:
return False
蒋博文
发表于 2020-3-28 21:51:29
先占楼。楼主,你先别揭帖。我还想答题{:5_96:}
zltzlt
发表于 2020-3-29 08:06:38
蒋博文 发表于 2020-3-28 21:51
先占楼。楼主,你先别揭帖。我还想答题
OK
蒋博文
发表于 2020-3-29 09:59:04
def fun360(A, B):
m = len(A)
n = len(B)
if m != n:
return False;
a=
b=
for i in range(m):
a) - ord('a')] += 1
b) - ord('a')] += 1
flag = 0
for i in range(26):
if a != b:
return False
if a > 1:
flag = 1
temp = []
for i in range(m):
if A!=B:
temp.append(i)
if 0 == len(temp):
if 1 == flag:
return True
else:
return False
if 2 == len(temp):
return True
return False
风魔孤行者
发表于 2020-3-29 10:33:59
def f345(a,b):
if len(a) != len(b) or len(a)<2:
return False
elif a == b and (a.find('aa') != -1 or a.find('bb') != -1):
return True
else:
l = []
for i in range(len(a)):
if a != b:
l.append(i)
if len(l) == 2 and l-l ==1:
return True
else:
return False
快马加鞭未下鞍
发表于 2020-3-29 11:20:03
a=input('请输入第一个字符串:')
b=input('请输入第二个字符串:')
l1=len(a)
l2=len(b)
m=0
if l1!=l2:
print('Flase')
else:
for i in range(l1):
if a!=b:
m+=1
if m>2:
break
if m==2:
print ('Ture')
elif m==0:
for i in a:
m=a.split(i)
if len(m)>2:
print('True')
break
else:
print('Flase')
else:
print('Flase')
zltzlt
发表于 2020-3-29 13:05:31
ouyunfu 发表于 2020-3-27 18:51
谢谢提示,已改
还是一样的错呢
zltzlt
发表于 2020-3-29 13:05:54
March2615 发表于 2020-3-27 18:54
抱歉注释有点多,怕没考虑到某些情况
44 ms