在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'}