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