Python中查找唯一字符串的长度组合的程序?

Python中查找唯一字符串的长度组合的程序?

假设我们有一个字符串列表 words。我们必须构造一个字符串,该字符串由连接子序列的单词构成,使得每个字母都是唯一的。我们最终必须找到最长的连接长度。

因此,如果输入如下 words = [“xyz”, “xyw”, “wab”, “cde”],则输出将为 9,因为我们无法选择任何单词,因为它们包含重复字符。

为了解决此问题,我们将按照以下步骤进行操作:

ans = 0

定义一个函数 recur()。这将采用 i:= 0, cur:= 空字符串

如果i与words的大小相同,则
   ans:= ans和cur大小的最大值
   回报
recur(i + 1,cur)
如果words[i]中的所有字符都是唯一的,而(cur + words[i])中的所有字符也都是唯一的,则
   recur(i + 1,cur + words[i])
从主要方法中执行以下操作:
recur()
返回ans

让我们看下面的实现,以更好地理解:

例子

class Solution:
   def solve(self, words):
      ans = 0

      def is_all_unique(s):
         return len(set(s)) == len(s)

      def recur(i=0, cur=""):
         nonlocal ans
         if i == len(words):
            ans = max(ans, len(cur))
         return

         recur(i + 1, cur)
         if is_all_unique(words[i]) and is_all_unique(cur + words[i]):
            recur(i + 1, cur + words[i])

      recur()
      return ans

ob = Solution()
words = ["xyz", "xyw", "wab", "cde"]
print(ob.solve(words))

输入

["xyz", "xyw", "wab", "cde"]

输出

9

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程