在Python中删除相似结尾后查找字符串最小长度的程序
假设我们有一个只有三个字符“a”、“b”和“c”的字符串s。我们将对字符串应用以下算法任意次数-
从s中选择一个非空前缀,其中前缀中的所有字符都相同。
从s中选择一个非空后缀,其中后缀中的所有字符都相同。
前缀和后缀是不相交的。
前缀和后缀的字符必须相同。
从s中删除前缀和后缀。
最后,我们必须在执行上述操作任意次(可能是零次)后找到s的最小长度。
所以,如果输入像s="aabccabba",那么输出将是3,因为我们首先可以选择prefix="aa"和suffix="a",这样去掉后的字符串就是"bccabb",然后选择前缀=“b”和后缀“bb”,所以去除后的字符串为“cca”,长度为3。
示例
让我们看看以下实现以获得更好的理解-
from collections import deque
def 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
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下