📌  相关文章
📜  Python集 |两组成对的完整字符串

📅  最后修改于: 2022-05-13 01:54:31.271000             🧑  作者: Mango

Python集 |两组成对的完整字符串

如果两个字符串连接在一起,则称它们是完整的,它们包含所有 26 个英文字母。例如,“abcdefghi”和“jklmnopqrstuvwxyz”是完整的,因为它们一起包含从“a”到“z”的所有字符。
我们分别给定了两组大小 n 和 m,我们需要找到将集合 1 中的每个字符串连接到集合 2 中的每个字符串时完成的对数。

例子:

Input : set1[] = {"abcdefgh", "geeksforgeeks",
                 "lmnopqrst", "abc"}
        set2[] = {"ijklmnopqrstuvwxyz", 
                 "abcdefghijklmnopqrstuvwxyz", 
                 "defghijklmnopqrstuvwxyz"} 
Output : 7
The total complete pairs that are forming are:
"abcdefghijklmnopqrstuvwxyz"
"abcdefghabcdefghijklmnopqrstuvwxyz"
"abcdefghdefghijklmnopqrstuvwxyz"
"geeksforgeeksabcdefghijklmnopqrstuvwxyz"
"lmnopqrstabcdefghijklmnopqrstuvwxyz"
"abcabcdefghijklmnopqrstuvwxyz"
"abcdefghijklmnopqrstuvwxyz"

我们有解决此问题的现有解决方案,请参阅 Pairs of complete 字符串 in two sets 字符串链接。我们可以在Python中使用 Set 数据结构快速解决这个问题。方法很简单,

  1. 考虑所有字符串对,将它们一一连接并将其转换为集合。
  2. 现在将连接字符串中的所有字母一一添加到集合中。由于 set 包含唯一值,因此如果 set 的长度等于 26,则意味着 set 包含所有 26 个英文字母。
# Function to find pairs of complete strings
# in two sets of strings
  
def completePair(set1,set2):
      
    # consider all pairs of string from
    # set1 and set2
    count = 0
    for str1 in set1:
        for str2 in set2:
            result = str1 + str2
  
            # push all alphabets of concatenated 
            # string into temporary set
            tmpSet = set([ch for ch in result if (ord(ch)>=ord('a') and ord(ch)<=ord('z'))])
            if len(tmpSet)==26:
                count = count + 1
    print (count)
  
# Driver program
if __name__ == "__main__":
    set1 = ['abcdefgh', 'geeksforgeeks','lmnopqrst', 'abc']
    set2 = ['ijklmnopqrstuvwxyz', 'abcdefghijklmnopqrstuvwxyz','defghijklmnopqrstuvwxyz']
    completePair(set1,set2)

输出:

7