109468.祖玛游戏
题目描述
当JZP再次醒来时,发现他在yxy的地盘上。
他发现他进入了一个祖玛游戏:地上有一圈槽形成一个圆,他在圆心上。在一圈槽上有n个可以摆放球的地方,在他的旁边有m个洞,可以从每个洞都可以拿到无限多的一种球(有红的,黄的,绿的...)。 JZP将这m种球放在这n个槽里,问他能摆多少种情况(如果将圆翻折和旋转一样则视为一种,不可以不放球)。
#include<stdio.h> #include<malloc.h> #include<string.h> #define ERROR NULL #define true 1 #define false 0 typedef char ElementType; typedef int bool; typedef struct LNode * PtrToLNode; struct LNode{ ElementType Data; PtrToLNode Next; }; typedef PtrToLNode Position; typedef PtrToLNode List; int Length(List L){ //获取链表的长度 Position p; int cnt = 0; //长度计数 p = L; while(p){ p = p->Next; cnt++; } return cnt; } bool Insert(List L, ElementType X, int i){ //插入链表 Position tmp, pre; int cnt = 0; pre = L; while (pre && cnt<i-1) { pre = pre->Next; cnt++; } if(pre == NULL || cnt != i-1){ //设置第一个链表节点是额外的,题目数据从第二个开始,防止出现这种情况 tmp = (Position)malloc(sizeof(struct LNode)); tmp -> Data = X; tmp -> Next = pre -> Next; pre -> Next = tmp; return true; } else{ tmp = (Position)malloc(sizeof(struct LNode)); tmp -> Data = X; tmp -> Next = pre -> Next; pre -> Next = tmp; return true; } } bool Delete(List L, int i){//删除节点 Position tmp, pre; int cnt = 0; pre =L; while(pre&&cnt<i-1){ pre = pre->Next; cnt++; } if(pre == NULL || cnt != i-1 || pre->Next == NULL){ //设置第一个链表节点是额外的,题目数据从第二个开始,防止出现这种情况 return false; } else{ tmp = pre->Next; pre->Next = tmp->Next; free(tmp); //释放内存 return true; } } bool hasRepeat(List L){ //判断是否有重复 int len = Length(L); int i=0; Position Pos = L; while(i<len){ char t = Pos->Data; int stratpos = i; int times = 0;//统计重复的次数 Position dPos = Pos; while(i<len&&t == Pos->Data){ times++; //统计重复的次数 Pos = Pos->Next; i++; } if(times>=3){ for(int j=0;j<3;j++){ //当出现三个以上重复,删除对应的三个节点 Delete(L, --i); } return true; } } return false; } int main(){ List L; char new[1000]; scanf("%s",new); L = (List)malloc(sizeof(struct LNode)); L->Data = '@';//单独设置的链表头,设置第一个链表节点是额外的,题目数据从第二个开始,防止删除和插入异常 L->Next = NULL;//单独设置的链表头,设置第一个链表节点是额外的,题目数据从第二个开始,防止删除和插入异常 for(int i = 0;i<strlen(new);i++){ char new1 = new[i];//插入题目要求的数据 Insert(L, new1, i+1); } int n; int pos; char content; scanf("%d", &n); for(int i=0;i<n;i++){ scanf("%d %c", &pos, &content); //输入单个字符和字符的位置 Insert(L, content, pos+1); while(hasRepeat(L)); if(Length(L)==1)//仅包含单独设置的链表头 printf("-\n"); else{ Position p =L->Next; while(p!=NULL){ //遍历输出 printf("%c", p->Data); p = p->Next; } printf("\n"); } } }
109468.祖玛游戏相关推荐
- LeetCode刷题实战488:祖玛游戏
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
- java祖玛_Canvas小练习_祖玛游戏01
这几天学习了一个祖玛游戏的小Demo,记录下这个小游戏的编写过程. 1:首先实现的一个简单界面效果. 2:在图形绘制完成后,让黑色小球沿着圆形弧线运动. 编码过程 创建画布,绘制圆形弧线. 首先在Ht ...
- Leetcode 488.祖玛游戏
祖玛游戏 回忆一下祖玛游戏.现在桌上有一串球,颜色有红色(R),黄色(Y),蓝色(B),绿色(G),还有白色(W). 现在你手里也有几个球. 每一次,你可以从手里的球选一个,然后把这个球插入到一串球中 ...
- Java实现 LeetCode 488 祖玛游戏
488. 祖玛游戏 回忆一下祖玛游戏.现在桌上有一串球,颜色有红色®,黄色(Y),蓝色(B),绿色(G),还有白色(W). 现在你手里也有几个球. 每一次,你可以从手里的球选一个,然后把这个球插入到一 ...
- 2021-11-09祖玛游戏
488. 祖玛游戏 难度困难208 你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W ...
- LeetCode每日一题488. 祖玛游戏
488. 祖玛游戏 你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W' .你的手中也 ...
- 祖玛游戏python
你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W' .你的手中也有一些彩球. 你的目 ...
- 力扣解题思路:488. 祖玛游戏
488. 祖玛游戏 思路: 实际上就是简单的消消乐,如果时间允许,最简单的暴力递归法也是可以的,就是把所有字母插入所有的位置,取最短且可以消去的插入球数即可.但是这样无脑插入是很浪费时间的,所以我们在 ...
- LeeCode祖玛游戏
题目描述 你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W' .你的手中也有一些彩球 ...
最新文章
- 取代java_如何评价 Kotlin?未来是否会取代 Java?
- R语言ggplot2可视化分面图(faceting)、在所有的分面中添加相同的参考基准曲线(overlay a base or reference plot to all facets )
- nethogs 查看 Linux 进程的网络使用
- 使用Opencv构建一个简单的图像相似检测器(MSE、SSIM)
- 嵌入式linux, CAN 驱动有关问题
- hibernate防止sql语句注入
- uitextfield 键盘类型_以编程方式更改UITextField键盘类型
- L2-023 图着色问题-PAT团体程序设计天梯赛GPLT
- script language=javascriptwindow.location.href=http://blog.securitycn.net/script
- UVA 679 小球掉落 思维 + 数据结构
- 使用 Maven 来管理项目 从 0 开始搭建 Maven 项目
- 微信小程序:实现微信登录
- CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi解决办法 亲测有效
- 程序员常用单词词汇汇总
- Netty in Action 翻译说明
- php 导出多个excel并输出压缩文件
- git如何撤销某次提交记录
- Excel中反转一列数据的几种方法
- 国密浏览器介绍与下载
- RAM、ROM、emmc、iNand、SD卡、mmc 与 Nandflash 的区别
热门文章
- 将在2018年为您的创业成功贡献最多的三大技术类别
- VS+Qt应用开发-Qt+Halcon显示图片,实现鼠标缩放、移动图片
- HGE系列之八管中窥豹(粒子系统)
- python frozenset_Python中set与frozenset方法和区别详解
- 周末愉快——css画大熊猫
- 【LeetCode每日一题:799.香槟塔~~~模拟】
- Win11电脑wifi图标消失了怎么办
- win10电脑连接蓝牙耳机stereo模式没有声音
- java高级编程笔试题_JAVA 高级编程笔试题
- Python说:这个炒股指标是我见过最废的,没有之一