题目描述

当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.祖玛游戏相关推荐

  1. ​LeetCode刷题实战488:祖玛游戏

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  2. java祖玛_Canvas小练习_祖玛游戏01

    这几天学习了一个祖玛游戏的小Demo,记录下这个小游戏的编写过程. 1:首先实现的一个简单界面效果. 2:在图形绘制完成后,让黑色小球沿着圆形弧线运动. 编码过程 创建画布,绘制圆形弧线. 首先在Ht ...

  3. Leetcode 488.祖玛游戏

    祖玛游戏 回忆一下祖玛游戏.现在桌上有一串球,颜色有红色(R),黄色(Y),蓝色(B),绿色(G),还有白色(W). 现在你手里也有几个球. 每一次,你可以从手里的球选一个,然后把这个球插入到一串球中 ...

  4. Java实现 LeetCode 488 祖玛游戏

    488. 祖玛游戏 回忆一下祖玛游戏.现在桌上有一串球,颜色有红色®,黄色(Y),蓝色(B),绿色(G),还有白色(W). 现在你手里也有几个球. 每一次,你可以从手里的球选一个,然后把这个球插入到一 ...

  5. 2021-11-09祖玛游戏

    488. 祖玛游戏 难度困难208 你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W ...

  6. LeetCode每日一题488. 祖玛游戏

    488. 祖玛游戏 你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W' .你的手中也 ...

  7. 祖玛游戏python

    你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W' .你的手中也有一些彩球. 你的目 ...

  8. 力扣解题思路:488. 祖玛游戏

    488. 祖玛游戏 思路: 实际上就是简单的消消乐,如果时间允许,最简单的暴力递归法也是可以的,就是把所有字母插入所有的位置,取最短且可以消去的插入球数即可.但是这样无脑插入是很浪费时间的,所以我们在 ...

  9. LeeCode祖玛游戏

    题目描述 你正在参与祖玛游戏的一个变种. 在这个祖玛游戏变体中,桌面上有 一排 彩球,每个球的颜色可能是:红色 'R'.黄色 'Y'.蓝色 'B'.绿色 'G' 或白色 'W' .你的手中也有一些彩球 ...

最新文章

  1. 取代java_如何评价 Kotlin?未来是否会取代 Java?
  2. R语言ggplot2可视化分面图(faceting)、在所有的分面中添加相同的参考基准曲线(overlay a base or reference plot to all facets )
  3. nethogs 查看 Linux 进程的网络使用
  4. 使用Opencv构建一个简单的图像相似检测器(MSE、SSIM)
  5. 嵌入式linux, CAN 驱动有关问题
  6. hibernate防止sql语句注入
  7. uitextfield 键盘类型_以编程方式更改UITextField键盘类型
  8. L2-023 图着色问题-PAT团体程序设计天梯赛GPLT
  9. script language=javascriptwindow.location.href=http://blog.securitycn.net/script
  10. UVA 679 小球掉落 思维 + 数据结构
  11. 使用 Maven 来管理项目 从 0 开始搭建 Maven 项目
  12. 微信小程序:实现微信登录
  13. CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsi解决办法 亲测有效
  14. 程序员常用单词词汇汇总
  15. Netty in Action 翻译说明
  16. php 导出多个excel并输出压缩文件
  17. git如何撤销某次提交记录
  18. Excel中反转一列数据的几种方法
  19. 国密浏览器介绍与下载
  20. RAM、ROM、emmc、iNand、SD卡、mmc 与 Nandflash 的区别

热门文章

  1. 将在2018年为您的创业成功贡献最多的三大技术类别
  2. VS+Qt应用开发-Qt+Halcon显示图片,实现鼠标缩放、移动图片
  3. HGE系列之八管中窥豹(粒子系统)
  4. python frozenset_Python中set与frozenset方法和区别详解
  5. 周末愉快——css画大熊猫
  6. 【LeetCode每日一题:799.香槟塔~~~模拟】
  7. Win11电脑wifi图标消失了怎么办
  8. win10电脑连接蓝牙耳机stereo模式没有声音
  9. java高级编程笔试题_JAVA 高级编程笔试题
  10. Python说:这个炒股指标是我见过最废的,没有之一