注意,lz并没有参加在线笔试,只是拿来练习一下,由于在hihocoder上并不能提交,只能用样例测试,所以不保证答案完全正确
题目:http://hihocoder.com/contest/ntest2015septdev/problem/2
分析:模拟题,递归降解即可,最坏复杂度为O(N^2),串的长度不超过100,所以复杂度可以接受
#include <cctype>
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;
const char* FindMatchedRight(const char* p)
{
int left = 1;
for(++p; ; ++p){
if(*p == '(') ++left;
else if(*p == ')' && !--left) break;
}
return p;
}
int GetOriginalLength(const string& s)
{
int tot = 0;
const char *t = s.c_str(), *p = t, *q;
for(; *p; p = q){
if(isupper(*p)){//*p = '