gpt4 book ai didi

c++ - (排列?)通过逐个字符删除字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:19:25 24 4
gpt4 key购买 nike

(C++!我不知道该不该提)(尽可能保留顺序!)

假设我有并且确实有字符串 ABaC。

我将该字符串中的每个字符都放在一个名为 temp 的 vector 中。

所以我有 temp[0] = A,temp[1] = B,temp[3] = a,temp[4] = C。

我想做的是一个程序,它输出该字符串的每个排列,结果是删除 0 个大写字母,然后是 1 个大写字母,然后是两个大写字母,然后是全部 3 个。

我删除大写字母的原因是......你不应该关注大写字母。碰巧我需要删除这里的所有大写字母,但是,比方说 ADbd,我不需要删除 D。实际上,这是一种从字符串中删除一组已知字符的算法。

所以它会输出:

ABaC|BaC|AaC|ABa|aC|Aa|Ba|a

这里不寻求效率或过于出色的算法。一些简单而长的或短而愚蠢的东西我也非常满意。

这是我正在处理的一个正在进行的项目的一部分,该项目删除了 lambda 产生式(你们这些好人已经帮助了我)所以这是我需要通过从规则,一个接一个,依此类推并输出每一个排列。

但是,你们都可以忽略这一点。把它想象成字符串。因此,非常感谢任何帮助。

谢谢你。

最佳答案

我不确定您使用的是哪种语言,因此我在下面提供了高级步骤。

  1. 遍历您的字符串并创建包含大写字母的所有索引的集合 capitalIndexes
  2. 对于 powerset 中的每个集合 s capitalIndexes,打印出字符串的每个字符,除了那些位于s中的索引处的字符,然后打印\n

这里唯一复杂的部分是生成幂集; here是另一个答案,它提供了一种在 C++ 中执行此操作的方法。

关于c++ - (排列?)通过逐个字符删除字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13655643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com