牛客赛题目
https://ac.nowcoder.com/acm/contest/7412/C
用递归模拟栈,其实栈的本质就是递归存取,这种方法不仅简便,而且不易错误。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+5;
string ss;
ll changdu;
ll i;
ll cc()
{
    ll ans=0,num=0,tmp=0;
    for(; i<changdu; i++)
    {

        while(ss[i]>='0'&&ss[i]<='9')
            tmp=tmp*10+ss[i++]-'0';//先算数字,在看字符
        num*=(tmp?tmp:1);
        ans+=num;
        tmp=0;
        num=0;
        if(ss[i]>='A'&&ss[i]<='Z')
            num=ss[i]-'A'+1;
        else if(ss[i]=='(')
        {
            i++;
            num=cc();
            //cout<<num<<endl;
        }
        else
            break;
    }
    ans+=num;//防止字符串最后一个为字符
    return ans;
}
int main()
{
    cin>>ss;
    changdu=ss.size();
    cout<<cc()<<endl;;
    return 0;
}
**细节拉满**