博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mooc 数据结构作业(二)祖玛(Zuma)
阅读量:5059 次
发布时间:2019-06-12

本文共 1522 字,大约阅读时间需要 5 分钟。

描述

祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色。此后,你可以发射珠子到轨道上并加入原有序列中。一旦有三个或更多同色的珠子变成相邻,它们就会立即消失。这类消除现象可能会连锁式发生,其间你将暂时不能发射珠子。

开发商最近准备为玩家写一个游戏过程的回放工具。他们已经在游戏内完成了过程记录的功能,而回放功能的实现则委托你来完成。

游戏过程的记录中,首先是轨道上初始的珠子序列,然后是玩家接下来所做的一系列操作。你的任务是,在各次操作之后及时计算出新的珠子序列。

输入

第一行是一个由大写字母'A'~'Z'组成的字符串,表示轨道上初始的珠子序列,不同的字母表示不同的颜色。

第二行是一个数字n,表示整个回放过程共有n次操作。

接下来的n行依次对应于各次操作。每次操作由一个数字k和一个大写字母Σ描述,以空格分隔。其中,Σ为新珠子的颜色。若插入前共有m颗珠子,则k ∈ [0, m]表示新珠子嵌入之后(尚未发生消除之前)在轨道上的位序。

输出

输出共n行,依次给出各次操作(及可能随即发生的消除现象)之后轨道上的珠子序列。

如果轨道上已没有珠子,则以“-”表示。

样例

见英文题面

限制

0 ≤ n ≤ 10^4

0 ≤ 初始珠子数量 ≤ 10^4

时间:2 sec

内存:256 MB

提示

列表

 

题意:输入一个字符串,在某个位置插入某个字母,如果有连续3个以上相同的就消除。输出最后的字符串

思路:完全字符串操作,将字母插入编程完整字符串,然后匹配3个以上的字符删除,知道没有可消除的位置。

注意:输入字符串可能为空,所以第一行用gets 而不是scanf

拼接字符串用

strcpy(tmp,str+i);

strcpy(str+startpos,tmp);

而非 strcpy(str+startpos,str+i);

原因是为什么?我还有些疑问orz

代码:

1 #include
2 #include
3 #include
4 using namespace std; 5 char str[20005]; 6 int n; 7 char tmp[20005]; 8 void cal(int t,char ch){ 9 char *p;10 p=str;11 strcpy(tmp,p+t);12 str[t]=ch;13 strcpy(str+t+1,tmp);14 }15 16 bool hasRepeat(){17 int len=strlen(str);18 int i=0;19 while(i
=3){28 strcpy(tmp,str+i);29 strcpy(str+startpos,tmp);30 return true;31 }32 }33 return false;34 }35 int main(){36 int t;37 char ch;38 gets(str);39 scanf("%d",&n);40 for(int i=0;i
View Code

 

转载于:https://www.cnblogs.com/Yvettey-me/p/9507767.html

你可能感兴趣的文章
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>
第三节
查看>>
PHP结合MYSQL记录结果分页呈现(比较实用)
查看>>
Mysql支持的数据类型
查看>>
openSuse beginner
查看>>
Codeforces 620E(线段树+dfs序+状态压缩)
查看>>
Windows7中双击py文件运行程序
查看>>
Market entry case
查看>>
bzoj1230 开关灯 线段树
查看>>
LinearLayout
查看>>