在Python中删除相似结尾后查找字符串最小长度的程序
假设我们有一个只有三个字符“a”、“b”和“c”的字符串 s。我们将对字符串应用以下算法任意次数 -
从 s 中选择一个非空前缀,其中前缀中的所有字符都相同。
从 s 中选择一个非空后缀,其中后缀中的所有字符都相同。
前缀和后缀是不相交的。
前缀和后缀的字符必须相同。
从 s 中删除前缀和后缀。
最后,我们必须在执行上述操作任意次(可能是零次)后找到 s 的最小长度。
所以,如果输入像s = "aabccabba",那么输出将是3,因为我们首先可以选择prefix = "aa"和suffix = "a",这样去掉后的字符串就是"bccabb",然后选择前缀=“b”和后缀“bb”,所以去除后的字符串为“cca”,长度为3。
示例
让我们看看以下实现以获得更好的理解 -
from collections import dequedef solve(s):
s = deque(s)
while len(s) > 1 and s[0] == s[-1]:
chk = s[0]
while s and s[0] == chk:
s.popleft()
while s and s[-1] == chk:
s.pop()
return len(s)
s = "aabccabba"
print(solve(s))
输入
"aabccabba"输出结果
3
以上是 在Python中删除相似结尾后查找字符串最小长度的程序 的全部内容, 来源链接: utcz.com/z/354392.html