📌  相关文章
📜  Python|检查是否可以通过连接列表的字符串元素来形成给定的字符串

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

Python|检查是否可以通过连接列表的字符串元素来形成给定的字符串

给定一个字符串'str' 和一个字符串元素列表,编写一个Python程序来检查给定的字符串是否可以通过连接列表的字符串元素来形成。

例子:

Input : str = 'python'
        lst = ['co', 'de', 'py', 'ks', 'on']
Output : False

Input : str = 'geeks'
        lst = ['for', 'ge', 'abc', 'ks', 'e', 'xyz']
Output : True

方法 #1:使用 itertools.permutations

我们可以使用给定列表的所有排列,然后对它们执行连接操作。如果任何连接结果等于给定的字符串,则返回 true,否则返回 false。

Python3
# Python3 program to Check if given string can
# be formed by concatenating string elements
# of list
from itertools import permutations
 
def checkList(str, lst):
    for i in range(2, len(lst)+1):
        for perm in permutations(lst, i):
            if ''.join(perm)== str:
                return True
                 
    return False
     
# Driver code
str = 'geeks'
lst = ['for', 'ge', 'abc', 'ks', 'e', 'xyz']
print(checkList(str, lst))


Python3
# Python3 program to Check if given string can
# be formed by concatenating string elements
# of list
import re
 
def checkList(str, lst):
 
    r = re.compile("(?:" + "|".join(lst) + ")*$")
    if r.match(str) != None:
        return True
         
    return False
     
# Driver code
str = 'geeks'
lst = ['for', 'ge', 'abc', 'ks', 'e']
print(checkList(str, lst))


输出:
True

方法 #2: Python正则表达式

Python3

# Python3 program to Check if given string can
# be formed by concatenating string elements
# of list
import re
 
def checkList(str, lst):
 
    r = re.compile("(?:" + "|".join(lst) + ")*$")
    if r.match(str) != None:
        return True
         
    return False
     
# Driver code
str = 'geeks'
lst = ['for', 'ge', 'abc', 'ks', 'e']
print(checkList(str, lst))
输出:
True