华为OD机试真题 Java 实现【对称字符串】【2023Q2 200分】

news/2024/11/17 23:55:53/

在这里插入图片描述

一、题目描述

对称就是最大的美学,现有一道关于对称字符串的美学。

已知:

第 1 个字符串:R
第 2 个字符串:BR
第 3 个字符串:RBBR
第 4 个字符串:BRRBRBBR
第 5 个字符串:RBBRBRRBBRRBRBBR

相信你已经发现规律了,没错!就是第 i 个字符串 = 第 i - 1 号字符串的取反 + 第 i - 1 号字符串;取反(R->B, B->R);

现在告诉你 n 和 k,让你求得第 n 个字符串的第 k 个字符是多少。(k的编号从 0 开始)。

二、输入描述

第一行输入一个T,表示有T组用例;

接下里输入T行,每行输入两个数字,表示n, k

1 <= T <= 100;
1 <= n <= 64;
0 <= k < 2^(n-1);

三、输出描述

输出T行表示答案;
输出 “blue” 表示字符是B;
输出 “red” 表示字符是R;

四、补充说明

输出字符串区分大小写,请注意输出小写字符串,不带双引号。

五、Java算法源码

public static void main(String[] args) {Scanner sc = new Scanner(System.in);int T = sc.nextInt();for (int i = 0; i < T; i++) {int n = sc.nextInt();int k = sc.nextInt();String string = reversal(n);String res = string.charAt(k) == 'R' ? "red" : "blue";System.out.println(res);}
}/*** 递归反转*/
public static String reversal(int n) {if (n == 1) {return "R";}// 当 n>1 时,对字符进行反转处理String str = reversal(n - 1);String reverse = "";for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c == 'R') {reverse += 'B';} else {reverse += 'R';}}return reverse + str;
}

六、效果展示

1、输入

5
1 0
2 1
3 2
4 6
5 8

2、输出

red
red
blue
blue
blue

3、说明

第 1 个字符串:R -> 第0个字符为R;
第 2 个字符串:BR -> 第1个字符为R;
第 3 个字符串:RBBR -> 第2个字符为B;
第 4 个字符串:BRRBRBBR -> 第6个字符为B;
第 5 个字符串:RBBRBRRBBRRBRBBR -> 第8个字符为B;


🏆下一篇:华为OD机试真题 Java 实现【获得完美走位】【2023Q1 100分】

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/76438.html

相关文章

Java CAS和AQS的实现原理

CAS CAS&#xff08;Compare And Swap&#xff09;是一种并发控制机制&#xff0c;用于解决多线程并发访问共享资源时的数据一致性问题。 在Java中&#xff0c;CAS操作通常使用Atomic类来实现。例如&#xff0c;可以使用java.util.concurrent.atomic.AtomicInteger类来实现对…

PHP使用嵌入HTTP代理代码示例

以下是使用 PHP 嵌入 HTTP 代理的示例代码&#xff1a; php <?php // 设置代理服务器地址和端口 $proxy 127.0.0.1:8080; // 设置代理服务器用户名和密码&#xff08;如果需要验证&#xff09; $proxyAuth username:password; // 创建 cURL 句柄 $ch curl_init(); …

[CTF/网络安全] 攻防世界 baby_web 解题详析

[CTF/网络安全] 攻防世界 baby_web 解题详析 index.html & default.htmlindex.phpHTTP 302总结 题目描述&#xff1a;想想初始页面是哪个 index.html & default.html 初始页面的文件名一般为 index.html 或 default.html。这两个文件名都是 Web 服务器默认的首选文件…

Qt·事件处理机制

思维导读 一、事件简介 QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线&#xff0c;存在于程序整个生命周期。 常见的QT事件类型如下: 键盘事件: 按键按下和松开 鼠标事件: 鼠标移动,鼠标按键的按下和松开 拖放事件: 用鼠…

STM32入门100步(第1步~第5步)

第一章 基础知识与平台建立 第1~2步 是时候学ARM了 1.1 为啥学? 什么是ARM? ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC(精简指令集)微处理器。全称为Advanced RISC Machine。ARM是一种性能出众的32位处理器的内核架构。1991年,一家叫ARM的公司在英国…

不需要策略模式也能避免满屏if/else

满屏if/else java 复制代码 public static void main(String[] args) { int a 1; if(a 1){ System.out.println("执行a1的逻辑"); }else if (a 2){ System.out.println("执行a2的逻辑"); }else if (a 3){ System.out.println("执行a3的逻辑&quo…

R语言实践——使用 rWCVP 生成自定义清单

使用 rWCVP 生成自定义清单 介绍1. 特有物种清单2. 近特有物种清单2.1 在塞拉利昂和另一地区出现的物种2.2 在塞拉利昂和相邻地区出现的物种 3. 生成自定义报告 介绍 除了允许用户从世界维管植物名录&#xff08;WCVP&#xff09;创建清单外&#xff0c;rWCVP还提供了修改清单…

python中的类型转换

文章目录 类型转换简介int()float()str()bool() 类型转换简介 所谓的类型转换&#xff0c;将一个类型的对象转换为其他对象。 类型转换不是改变对象本身的类型&#xff0c;而是将对象的值转换为新的对象。 类型转换四个函数 int() 、 float() 、 str() 、 bool() int() int()…