携程笔试Java 0907 第四题详解
#include< iostream>
#include< string>
using namespace std;
int main()
{
string a;
cin>>a;
long long ans = 0;
int t = 0;
for(int i=0;i< a.size();i++)
{
if(a[i] == '0')
{
if(t<0) t = 0;
t++;
if(t>0) ans+=t;
}
else if(a[i] == '1')
{
t--;
if(t>0) ans+=t;
}
}
cout<< ans << endl;
}
#include< string>
using namespace std;
int main()
{
string a;
cin>>a;
long long ans = 0;
int t = 0;
for(int i=0;i< a.size();i++)
{
if(a[i] == '0')
{
if(t<0) t = 0;
t++;
if(t>0) ans+=t;
}
else if(a[i] == '1')
{
t--;
if(t>0) ans+=t;
}
}
cout<< ans << endl;
}
全部评论
单调栈的板子吧
1直接-1太妙了
**佬也太强了吧
1的出现怎么来考虑的,没看懂
我双指针双了半天,用例过5%
相关推荐