删除Python中不同的相邻位后查找最短字符串的程序
假设我们有一个二进制字符串s,我们可以删除两个相邻的字母(如果它们不同)。最后,如果我们能够多次执行此操作,则必须找到可以得到的最小字符串的长度。
因此,如果输入类似于s=“1100011”,则输出将为1,因为删除“10”后,我们得到的是“10011”,然后再次删除“10”,它将为“011”,然后删除“01””,它将剩下1。
为了解决这个问题,我们将遵循以下步骤-
堆栈:=一个新列表
对于s中的每个c
堆栈中的弹出元素
将c推入堆栈
如果堆栈为空或堆栈顶部与c相同,则
否则,当栈顶与c不相同时,则
返回堆栈中的元素数
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, s):
stack = []
for c in s:
if not stack or stack[-1] == c:
stack.append(c)
elif stack[-1] != c:
stack.pop()
return len(stack)
ob = Solution() print(ob.solve("1100011"))输入项
"1100011"
输出结果
1
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短