Python程序:查找给定字符串s的所有字母组合


假设我们有一个字符串s。我们需要找到s的所有可能的字母组合。如果存在两个字符集相同的字符串,则显示其中字典序最小的那个。并且有一个约束条件,即s中的每个字符都是唯一的。

所以,如果输入类似s = "pqr",则输出将是['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']

为了解决这个问题,我们将遵循以下步骤:

  • st_arr := 一个新的列表
  • 对于i从s的大小-1到0,递减1,执行:
    • 对于j从0到st_arr的大小-1,执行:
      • 将(s[i]连接st_arr[j])插入到st_arr的末尾
    • 将s[i]插入到st_arr的末尾
  • 返回st_arr

示例

让我们看看以下实现,以便更好地理解:

def solve(s):
   st_arr = []

   for i in range(len(s)-1,-1,-1):
      for j in range(len(st_arr)):
         st_arr.append(s[i]+st_arr[j])
      st_arr.append(s[i])
   return st_arr

s = "pqr"
print(solve(s))

输入

"pqr"

输出

['r', 'qr', 'q', 'pr', 'pqr', 'pq', 'p']

更新于: 2021年10月25日

6K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告