题目链接:https://ac.nowcoder.com/acm/contest/332/I
这是一道阅读理解题...说实话真的没看懂题,不知道为什么第二个样例不能看0 看1 写0 写1,这样不也是20吗??但是直觉告诉我这个和括号配对差不多,然后照着样例瞎敲了份code就过了...代码的思路就是和括号配对一样,遇到两个相邻的就pop出去,否则就push进来,栈中剩下的都是配不了对的,所以除以2乘5就是得分。如果有理解题意的麻烦给我讲一下....
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str;
cin>>str;
int len = str.length();
stack<char> s;
int ans = 0;
for(int i=0;i<len;i++){
if(s.empty()){
s.push(str[i]);
continue;
}
if(s.top() == str[i]) {
ans += 10;
s.pop();
}
else {
s.push(str[i]);
}
}
ans += s.size() / 2 * 5;
printf("%d\n", ans);
return 0;
}