题目链接:CF1178B WOW Factor - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目大意:
给一个字符串,找有多少个vvovv。vv必须是连续的,而且要与o匹配,,其实就是遇见一个o就把o前面和后面的vv个数相加。(一定要读懂题意,理解上的偏差很容易看不懂题)
思路:
把遇见o之前的所有vv计算,然后遇见o时(这时也已经把o之后下一个o之前所有的vv计算了,然后相加就是结果了。
坑点:
没有
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;cin>>s;
long long int sum=0,num=0,ans=0;
for(int i=1;i<=s.length();i++)
{
if(s[i]==s[i-1]&&s[i-1]=='v')
{
sum++;
ans+=num;
}else{
if (s[i]=='o')
{
num+=sum;
}
}
}
cout<<ans<<endl;
return 0;
}
总结:
就这样吧