萌新求教,为啥这个只能通过95%啊??

#include<bits/stdc++.h>

using namespace std;

#define int long long

signed main() {

string s;

cin >> s;

int len = s.size();

if(len==2){

if(s[0]==s[1]){

cout<<0<<endl;

}

else{

cout<<1<<endl;

}

}

else{

int res = 0;

int st = 0;

vector<int> SavedRes(len,-1);

for(int ed=1;ed<=len;ed++){

if(s[ed]==s[ed-1]||ed==len){

int x=ed-st;

if(SavedRes[x]==-1){

SavedRes[x]=(x*x-x)/2;

}

res+=SavedRes[x];

st=ed;

}

}

cout<<res<<endl;

}

}

全部评论
不太懂cpp你可以参考一下我的代码 cnt=0 s=input() if len(s)<2:     print(0) else:     left=0     right=1     while right<len(s):         if s[right]!=s[right-1]:             cnt+=right-left         else:             left=right         right+=1     print(cnt)
点赞 回复 分享
发布于 01-16 11:28 江西
路过帮顶
点赞 回复 分享
发布于 01-15 10:31 北京

相关推荐

不愿透露姓名的神秘牛友
07-09 12:20
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
合不合适,我自己说了才算
码农索隆:hr:“真执着啊,来我公司当法人吧”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务