创建字谜函数

2024-05-15 02:54:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我花了两个小时左右的时间试图解决这个问题,似乎不知道如何在不使用sorted()的情况下创建一个anagram函数。尝试在不使用splice、.find()、.count()、.replace()和sorted()的情况下找出它。 目前我有哪些有效的方法:

def anagram(anag1, anag2):
    if (sorted(anag1) == sorted(anag2)):
        return True
    else:
        return False

如果有人能不经过分类就能做到,那就太好了。你知道吗


Tags: 方法函数returndefcount时间情况find
3条回答

使用^{}

from collections import Counter

def anagram(str_1, str_2):
   return Counter(str_1) == Counter(str_2)

使用计数器生成每个输入字符串的字典,然后我们可以比较这些字典,如果没有任何区别,它是一个字谜,否则不是。你知道吗

from collections import Counter

def anagram(ang1,ang2):

    count_list1 = Counter(ang1)
    count_dict1 = dict(count_list1)

    count_list2 = Counter(ang2)
    count_dict2 = dict(count_list2)

    dict_compare_length = len(count_dict1.items() - count_dict2.items())

    if dict_compare_length==0:
        return True
    else:
        return False

print(anagram('listen','silen'))

我假设您希望看到一个没有任何花哨集合或函数的解决方案。只是原始数据类型、循环和条件。那么,那。。。你知道吗

def count(word):
  map = {}
  for e in word:
    if e not in map:
      map[e] = 0
    map[e] += 1
  return map

def anagram(a, b):
  c1 = count(a)
  c2 = count(b)
  return all(c1[k] == c2[k] for k in c1)

制作一个字典,列出每个元素的编号,然后比较两个元素中是否有相同的编号。你知道吗

相关问题 更多 >

    热门问题