#include <iostream> #include <cstdio> using namespace std; char ch[300010]; int n,m; int Cal(int x,char c) { x-=1; if(c == '.') //点 { if(ch[x]=='.') {//点换点 ch[x] = c; return 0; } else {//点换字母 int rt = 0; if(x-1>=0 && ch[x-1]=='.') rt += 1; if(x+1<n && ch[x+1]=='.') rt += 1; ch[x] = c; return rt; } } else if(c != '.') {//字母 if(ch[x]!='.') {//字母换字母无意义 ch[x] = c; return 0; } else if(ch[x]=='.') {//字母换点 左边有点少1 右边有点再少1 int rt = 0; if(x-1>=0 && ch[x-1]=='.') rt -= 1; if(x+1<n && ch[x+1]=='.') rt -=1; ch[x] = c; return rt; } } } int main() { while(cin >>n >> m) { getchar(); int count = 0; gets(ch); for(int i=0;i<n;i++) { if(ch[i]=='.'&&ch[i+1]=='.') { count +=1; } } //cout << count << endl; int x; char ct; for(int i=0;i<m;i++) { scanf("%d %c",&x,&ct); //printf("%d %c\n",x,ct); count += Cal(x,ct); cout << count << endl; } } } 就是给你一个字符串,问你替换其中某个字符后,需要几次修改才没有连续的点点...
点赞 评论

相关推荐

一天代码十万三:这个学历有中大厂实习也是0面,没办法,斩杀线是这样的
点赞 评论 收藏
分享
RajahnRan:公司赚到了,这可是一眼就手写出来的代码,ai都写不出来
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务