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
页: 1 [2] 3 4
查看完整版本: Python:每日一题 360