Python : 两个字符串是否是变位词

匿名 (未验证) 提交于 2019-12-02 22:51:30

class Anagram:
“”"
@:param s1: The first string
@:param s2: The second string
@:return true or false
“”"
def Solution1(s1,s2):
alist = list(s2)

    pos1 = 0     stillOK = True      while pos1 < len(s1) and stillOK:         pos2 = 0         found = False         while pos2 < len(alist) and not found:             if s1[pos1] == alist[pos2]:                 found = True             else:                 pos2 = pos2 + 1          if found:             alist[pos2] = None         else:             stillOK = False          pos1 = pos1 + 1      return stillOK  print(Solution1('abcd','dcba'))  def Solution2(s1,s2):     alist1 = list(s1)     alist2 = list(s2)      alist1.sort()     alist2.sort()       pos = 0     matches = True      while pos < len(s1) and matches:         if alist1[pos] == alist2[pos]:             pos = pos + 1         else:             matches = False      return matches  print(Solution2('abcde','edcbg'))  def Solution3(s1,s2):     c1 = [0]*26     c2 = [0]*26      for i in range(len(s1)):         pos = ord(s1[i])-ord('a')         c1[pos] = c1[pos] + 1      for i in range(len(s2)):         pos = ord(s2[i])-ord('a')         c2[pos] = c2[pos] + 1      j = 0     stillOK = True     while j<26 and stillOK:         if c1[j] == c2[j]:             j = j + 1         else:             stillOK = False      return stillOK  print(Solution3('apple','pleap')) 
文章来源: https://blog.csdn.net/weixin_44523387/article/details/92159877
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!