当前位置: 首页 > news >正文

蓝桥杯算法双周赛心得——被替换的身份证(分类讨论)

大家好,我是晴天学长,分类讨论一定要细节啊,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪


1) .被替换的身份证

在这里插入图片描述


2) .算法思路

假设一方获胜

1.接受数据
2.假设潜梦醒
无非就是,出单,对子,(王炸有的话必赢)。


3).算法步骤

1.创建一个字符串s,其中包含了扑克牌的排列顺序。
2.创建一个空字符串s1,用于接收输入的数据。
3.通过读取输入的第一行,将其转换为整数T,表示测试用例的数量。
4.进入一个循环,循环次数为测试用例的数量T。
5.通过读取输入的每一行,将其存储在字符串s1中,并使用空格分割为两部分。
6.将分割后的第一部分赋值给字符串qian,表示先手玩家手中的牌。
7.将分割后的第二部分赋值给字符串ling,表示后手玩家手中的牌。
8.进行先手必赢的情况判断:
(1)如果先手玩家的牌是"MF",或者两张牌相同,或者是"FM",则输出"ShallowDream",表示先手玩家必胜。
9.进行后手必赢的情况判断:
(1)如果后手玩家的牌是"MF"或者"FM",则输出"Joker",表示后手玩家必胜。
10.处理其他情况,即先手和后手都没有必胜的情况:
(1)由于先手只能出单牌,所以只需要比较双方手中牌的最大值即可。
(2)使用字符串s中的索引来确定牌的大小,找到先手玩家和后手玩家手中牌的最大值。
(3)如果先手玩家手中的最大牌大于等于后手玩家手中的最大牌,则输出"ShallowDream"。
(4)否则,输出"Joker"。
11.循环结束后,程序结束。


4). 代码实例

import jdk.swing.interop.SwingInterOpUtils;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;public class Main {static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));public static void main(String[] args) throws IOException {String s = "3456789XJQKA2MF";String s1 = "";s1 = in.readLine();int T = Integer.parseInt(s1);for (int i = 0; i < T; i++) {s1 = in.readLine();String[] tokens = s1.split(" ");String qian = tokens[0];String ling = tokens[1];//先手必赢的情况if (qian.equals("MF") || (qian.charAt(0) == qian.charAt(1) || qian.equals("FM"))) {System.out.println("ShallowDream");continue;}if (ling.equals("MF") || ling.equals("FM")) {System.out.println("Joker");continue;}//其他情况,就是拿的两个不一样的牌,只能出单子,并且两个人没有王炸的情况。//只能单的单的比,因为先手出不起双的。//只需要比较双方的牌中,有谁的牌最大,就赢。int qiandan = Math.max(s.indexOf(qian.charAt(0)), s.indexOf(qian.charAt(1)));int lingdan = Math.max(s.indexOf(ling.charAt(0)), s.indexOf(ling.charAt(1)));if (qiandan >= lingdan) {System.out.println("ShallowDream");} else {System.out.println("Joker");}}}
}

4).总结

  • 正确的分类讨论,注意MF和FM的情况。

试题链接:

http://www.lryc.cn/news/226555.html

相关文章:

  • 实验一:人工智能之启发式搜索算法(含源码+实验报告)
  • C++学习 --类和对象之封装
  • 在Spring Boot中使用JTA实现对多数据源的事务管理
  • 介绍YOLO-NAS Pose:姿势估计的技术
  • 计算机毕业设计 基于SpringBoot的实训管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Python开发运维:Python3.7使用QQ邮箱发送不同类型邮件
  • 二十三种设计模式全面解析-解密迭代器模式:探索遍历之道
  • kubernetes istio
  • 25期代码随想录算法训练营第十四天 | 二叉树 | 递归遍历、迭代遍历
  • 常用布局以及其优缺点
  • 海康工业相机如何提高相机帧率
  • Linux之IPC通信共享内存(一次拷贝)与消息队列、管道、信号量、socket(两次拷贝)总结(六十二)
  • 【多线程 - 01、概述】
  • SQL SELECT INTO 语句
  • 【刷题】(AtCoder Beginner Contest 328) C、D 补题
  • NI USRP软件无线设备的特点
  • 大数据毕业设计选题推荐-污水处理大数据平台-Hadoop-Spark-Hive
  • 最新获取支付宝cardIndex参数图文教程
  • Linux学习第二枪(yum,vim,g++/gcc,makefile的使用)
  • 自然语言处理(一):RNN
  • 超全总结!大模型算法面试指南(含答案)
  • 前端使用C-lodop 实现循环套打小案例
  • 基于SpringBoot+Vue+mysql卓越导师双选系统设计与实现
  • Windows 11系统cmd终端美化、Vscode终端美化
  • [游戏中的图形学实时渲染技术] Part1 实时阴影技术
  • NtripShare Mos地铁自动化监测终端盒子硬件设计
  • 第 117 场 LeetCode 双周赛题解
  • OpenCV C++ 图像处理实战 ——《多二维码识别》
  • 经典算法(查找与排序)
  • 微软和Red Hat合体:帮助企业更方便部署容器