【问题标题】:Anagram Between 2 Arrays两个数组之间的字谜
【发布时间】:2021-02-26 23:00:00
【问题描述】:

所以我根据用户输入制作了 2 个数组,我想检查该数组 b 是否是数组 a 的字谜,类似这样,但我没有不知道希望你们如何帮助我

a = arr.array('i', [])
b = arr.array('B', [])

k = int(input("Masukkan Banyaknya Elemen A:"))
for i in range(0, k):
    num = int(input("Masukkan Elemen A ke-%d :" % (i + 1)))
    a.append(num)
    
print("All array A elements are:", end="")
for i in a:
    print(i, end=" ")
    
l = int(input("\n"+"Masukkan Banyaknya Elemen B:"))
for B in range(0, l):
    num = int(input("Masukkan Elemen B ke-%d :" % (B + 1)))
    b.append(num)
    
print("All array B elements are:", end="")
for B in b:
    print(B, end=" ")

【问题讨论】:

    标签: python arrays anagram


    【解决方案1】:

    我认为,理想情况下,我们可以使用字典来记录所有字母并稍后检查。

    代码:-

    def counter(s):
        string_list = []
        for ch in s.lower():
            string_list.append(ch)
    
        string_dict = {}
        for c in string_list:
            if c not in string_dict:
                string_dict[c] = 1
            else:
                string_dict[c] = string_dict[c] + 1
    
        return string_dict
    
    
    s1 = "anagram"
    s2 = "nagaram"
    
    a = counter(s1)
    b = counter(s2)
    
    if a == b:
        print("Anagram")
    else:
        print("Not Anagram")
    

    使用某种排序函数(如 sorted)的计算成本更高。

    【讨论】:

      【解决方案2】:
      if sorted(A) == sorted(B):
          print('A and B are anagrams.')
      

      【讨论】:

        猜你喜欢
        • 2016-11-24
        • 2018-04-19
        • 1970-01-01
        • 2015-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多