【发布时间】:2021-06-05 04:38:06
【问题描述】:
假设我有一个按字母顺序排列的字符串,基于字母重复的次数。
- 示例:“BBBAADDC”。
有 3 个 B,所以它们在开头,2 个 A 和 2 个 D,所以 A 排在 D 前面,因为它们按字母顺序排列,还有 1 个 C。另一个例子是 CCCCAAABBDDAB。
请注意,中间某处可以有 4 个字母(即 CCCC),因为可能有 2 对 2 个字母。
但是,假设我只能连续输入 n 个字母。例如,如果在第二个示例中 n = 3,那么我将不得不从 4 个 C 的第一个子字符串中省略一个“C”,因为一行中最多只能有 3 个相同的字母。
另一个例子是字符串“CCDDDAABC”;如果 n = 2,我必须删除一个 C 和一个 D 才能得到字符串 CCDDAABC
输入/输出示例:
- n=2:输入:AAABBCCCCDE,输出:AABBCCDE
- n=4:输入:EEEEEFFFFGGG,输出:EEEEEFFFFGGG
- n=1:输入:XXYYZZ,输出:XYZ
如何用 Python 做到这一点?提前致谢!
这就是我现在所拥有的,虽然我不确定它是否在正确的轨道上。这里,z 是字符串的长度。
for k in range(z+1):
if final_string[k] == final_string[k+1] == final_string[k+2] == final_string[k+3]:
final_string = final_string.translate({ord(final_string[k]): None})
return final_string
【问题讨论】:
-
显示到目前为止您为解决此问题所做的工作。
-
完成!对此感到抱歉。
-
虽然我不确定它是否在正确的轨道上它会产生你想要的结果吗?
-
不,绝对不是。我要么得到“字符串索引超出范围”,要么删除字符串中与“final_string[k]”相同的每个字符。
-
我不确定实际的问题是什么。您只需要删除多余的重复字母吗?