题目描述
二进制字符串,反复消去相邻的‘0’和‘1’,直到不能继续消去,求剩余子串长度。
输入第一行为串的位数,第二行为串本身,第一行有点多余。。。
样例
输入
5
10101
消去后剩余‘1’,所以
输出
1
思路
- 对简单样例做一些尝试,理解题目。
“010”消去得“0”,‘1’与左还是右结合不影响结果。
“1100”消去得“”,消去操作要一直进行到无法消去。 - 根据“010”的例子,发现消去过程的策略选择不影响结果。
- 根据“1100”的例子,猜想消去后只有一种字符。
- 证明猜想,若结果中存在两种字符,则必有两种字符相邻,不满足题意。
- 结果只包含一种字符,即输出应该是两种字符的数量差值。
python3 代码
我猜python有字符计数的函数,一搜还真有哈哈。
n = input()
num = input()
print(abs(num.count('1') - num.count('0')))