在Python中删除k个字符后查找所有可能的子字符串
我们得到一个字符串。所需的任务是从字符串中取出一个字母,然后在字符串中打印其余字母。对于字符串的每个字母,我们必须这样做。
带循环和范围
这是一种基本的编程方法,在该方法中,我们首先列出所需的参数,例如声明字符串,为开始位置和结束位置创建变量并为每个字母创建一个临时占位符。我们创建了一个函数,该函数将遍历每个字母并创建一串剩余的字母。
示例
list = []
def letterCombinations(s, t, start, end, index, k):
if (index == k):
elem = ''
for j in range(k):
elem += t[j]
list.append(elem)
return
i = start
while (i <= end and end - i + 1 >= k - index):
temp[index] = s[i]
letterCombinations(s, t, i + 1,
end, index + 1, k)
i += 1
stringA = 'Apple'
k = 1
temp = [0] * (len(stringA) - k)
start = 0
end = len(stringA) - 1
letterCombinations(stringA, temp, start, end, 0, len(stringA) - k)
print(set(list))输出结果
运行上面的代码给我们以下结果-
{'pple', 'Aple', 'Appl', 'Appe'}与itertools
在这种方法中,我们使用模块itertools,该模块具有名为组合的功能。从给定的字符串中删除一个字母后,这将创建所有可能的字母组合。
示例
from itertools import combinations stringA = 'Apple' k = 1 # using combinations res = set([''.join(i) for i in combinations(stringA, len(stringA) - k)]) print(res)
输出结果
运行上面的代码给我们以下结果-
{'Appl', 'Aple', 'Appe', 'pple'}