题目传送门:C. Pluses and Minuses
题目大意
给一个由'+'和'-'组成的操作序列,所求res初始为0;
对于一个变量cur(初始值为0),经过'+'字符,cur + 1,经过'-'字符,cur - 1,每经过一次操作res + 1,如果在执行序列的过程中cur<0则break;
使cur的初始值+1并重新执行操作序列(注意res不清零),直到在cur的初始值为某个值的情况下完整的执行完操作序列且不中断(也就是cur在执行过程中一直大于等于0),求最终res的值。(下面附上题目所给伪代码)
res = 0
for init = 0 to inf
cur = init
ok = true
for i = 1 to |s|
res = res + 1
if s[i] == '+'
cur = cur + 1
else
cur = cur - 1
if cur < 0
ok = false
break
if ok
break
思路
其实就是个计数问题,当然也可以算是个思维