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

news/2025/1/16 1:14:18/

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


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.ppmy.cn/news/1212848.html

相关文章

思科9300交换机使用USB进行升级ISO

一、下载ISO 一、网址 Software Download - Cisco Systems 二、找到型号 四、选择XE 软件 五、进行下载 二、COPY 进 U盘 一、、请注意&#xff01;如果你的U盘不是Fat32文件格式则交换机读取不了&#xff0c;请先格式化再复制文件。 二、下载后将 bin文件复制到U盘。 1.扩展…

安装完 Ubuntu 22.04 LTS 后需要做的11件事情

如果你已经安装了 Ubuntu 22.04 LTS&#xff0c;接下来如何优化呢? 在本指南中&#xff0c;我们概述了一些基本步骤&#xff0c;当你熟悉 Ubuntu 22.04 LTS (Jammy Jellyfish) 时&#xff0c;你可以采取这些步骤。 (1) 更新本地存储库并升级系统 刷新本地软件包索引。因此&a…

Pytorch损失函数、反向传播和优化器、Sequential使用

Pytorch_Sequential使用、损失函数、反向传播和优化器 文章目录 nn.Sequential搭建小实战损失函数与反向传播优化器 nn.Sequential nn.Sequential是一个有序的容器&#xff0c;用于搭建神经网络的模块被按照被传入构造器的顺序添加到nn.Sequential()容器中。 import torch.nn …

Leetcode—680.验证回文串II【简单】

2023每日刷题&#xff08;二十七&#xff09; Leetcode—680.验证回文串II 实现代码 class Solution { public:bool judgeFunc(string s, int left, int right) {while(left < right) {if(s[left] ! s[right]) {return false;}left;right--;}return true;}bool validPalin…

Ubuntu查看Python某个包的具体路径

使用命令&#xff1a; python(版本号) -m pip show (包)这里的Location就是这个包所在的路径。同时它还列出了这个包的版本的信息。

antlr4踩坑记录

一. syntax error: ‘<’ came as a complete surprise to me while matching alternative 参考这个issue&#xff0c;antlr版本必须得是4.6 下载链接&#xff1a;http://www.antlr.org/download/antlr-4.6-complete.jar 二.org.antlr.v4.analysis.LeftRecursiveRuleTrans…

【算法练习Day46】判断子序列不同的子序列

​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 判断子序列不同的子序列总结…

OpenShift 4 - 对 OpenShift 的 etcd 数据库加密

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在 OpenShift 4.14 的环境中验证 文章目录 加密 etcd 数据库验证加密的 etcd 数据库解密 etcd 数据库 加密 etcd 数据库 OpenShift 对 etcd 数据库加密时只加密值&#xff0c;而不加密键。而资源类型、命…