因为N<=50000 所以O(n^2)做法可能会超时
但是我们可以先统计遍历中看到的后腿数量
之后每一次出现的前腿都可以匹配到
所以我们在每次发现前腿时 都将ans加上cnt
#include <iostream>
using namespace std;
int main()
{
string s; cin>>s;
int ans=0, cnt=0;
for(int i=1; i<s.size(); i++)
{
if(s[i-1]==')' && s[i]==')') ans+=cnt;//发现前腿
else if(s[i-1]=='(' && s[i]=='(') cnt++;//发现后腿
}
cout<<ans;
return 0;
}
666
wc牛逼佩服
酱紫雀氏蟀
真棒!
妙!
tql
tql
妙啊
我陷入了沉思
%%%%
看着我用双指针的做法陷入了沉思
看着我用kmp加前缀和的代码陷入沉思
很6