zltzlt 发表于 2020-3-27 18:00:47

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:23:12

本帖最后由 一个账号 于 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

zltzlt 发表于 2020-3-27 18:24:30

一个账号 发表于 2020-3-27 18:23


解答错误

输入:a = "aa", b = "aa"
输出:False
预期结果:True

一个账号 发表于 2020-3-27 18:24:55

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:25:23

本帖最后由 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

zltzlt 发表于 2020-3-27 18:27:07

March2615 发表于 2020-3-27 18:25
上一题还是359,突然变成了370

感谢指出,太粗心了{:10_250:}{:10_245:}

一个账号 发表于 2020-3-27 18:27:12

zltzlt 发表于 2020-3-27 18:25
IndexError

输入了什么?

zltzlt 发表于 2020-3-27 18:27:35

一个账号 发表于 2020-3-27 18:27
输入了什么?

a = "ab",b = "ab"

zltzlt 发表于 2020-3-27 18:28:13

March2615 发表于 2020-3-27 18:25


解答错误

输入:a = "aa", b = "aa"
输出:False
预期结果:True

ouyunfu 发表于 2020-3-27 18:29:08

本帖最后由 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

一个账号 发表于 2020-3-27 18:29:57

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:35:22

本帖最后由 zltzlt 于 2020-3-27 18:37 编辑

ouyunfu 发表于 2020-3-27 18:29


解答错误

输入:a = "ab", b = "ab"
输出:True
预期结果:False

zltzlt 发表于 2020-3-27 18:36:06

本帖最后由 zltzlt 于 2020-3-27 18:46 编辑

一个账号 发表于 2020-3-27 18:29


解答错误

输入:a = "abab", b = "abab"
输出:False
预期结果:True

一个账号 发表于 2020-3-27 18:36:51

zltzlt 发表于 2020-3-27 18:36
解答错误

输入:a = "abab", b = "abab"


你的题目没说

永恒的蓝色梦想 发表于 2020-3-27 18:38:31

本帖最后由 永恒的蓝色梦想 于 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

zltzlt 发表于 2020-3-27 18:38:44

永恒的蓝色梦想 发表于 2020-3-27 18:38
占楼

{:10_256:}

一个账号 发表于 2020-3-27 18:38:57

zltzlt 发表于 2020-3-27 18:37


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

March2615 发表于 2020-3-27 18:40:38

zltzlt 发表于 2020-3-27 18:36
解答错误

输入:a = "abab", b = "abab"


这不是可以把a中的两个a交换位置吗?
感觉今天的题想不到的情况有点多啊

永恒的蓝色梦想 发表于 2020-3-27 18:44:37

zltzlt 发表于 2020-3-27 18:38


写完🌶{:10_256:}

一个账号 发表于 2020-3-27 18:46:08

本帖最后由 一个账号 于 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]
页: [1] 2 3 4
查看完整版本: Python:每日一题 360