在 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 的模块,该模块具有一个名为 combinations 的函数。在我们从给定字符串中删除一个字母后,它负责创建所有可能的字母组合。

示例

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

更新时间: 2020-08-26

149 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告