华为OD机试 -对称美学(C++ Java JavaScript Python)

本文介绍了华为OD机考中的一道关于对称字符串的问题,解析了题目规律并提供了C++、JavaScript、Java和Python的解题思路。通过观察字符串的前后关系,可以发现递归特性,并据此求解第n个字符串的第k个字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

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

  • 第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。

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

用例

输入 5
1 0
2 1
3 2
4 6
5 8
输出 red
red
blue
blue
blue
说明 第 1 个字符串:R -> 第 0 个字符为R
第 2 个字符串:BR -> 第 1 个字符为R
第 3 个字符串:RBBR -> 第 2 个字符为B
第 4 个字符串:BRRBRBBR -> 第 6 个字符为B
第 5 个字符串:RBBRBRRBBRRBRBBR -> 第 8 个字符为B
输入 1
64 73709551616
输出 red
说明<
### 在 QtCreator打印中文信息的方法 在 QtCreator打印中文信息时,需要确保编码设置正确,并使用适当的输方式。以下是实现方法的详细说明: #### 1. 确保正确的编码设置 在 Qt 项目中,默认的字符串编码为 UTF-8。如果需要打印中文信息,必须保证源文件的编码格式为 UTF-8。可以在 `.pro` 文件中添加以下内容以确保编码一致: ```plaintext CODECFORTR = UTF-8 ``` 此外,还需要在代码中明确指定字符串的编码格式[^2]。 #### 2. 使用 `QString` 和 `QTextStream` 输中文 Qt 提供了对 Unicode 的全面支持,推荐使用 `QString` 来处理中文字符串。例如: ```cpp #include <QString> #include <QDebug> int main() { QString chineseText = "你好,世界"; // 使用 QString 存储中文 qDebug() << chineseText; // 使用 qDebug到控制台 return 0; } ``` 上述代码通过 `qDebug()` 将中文字符串输到控制台。需要注意的是,`qDebug()` 默认支持 UTF-8 编码,因此可以直接打印中文字符[^3]。 #### 3. 设置控制台编码(针对 Windows 平台) 在 Windows 平台上,默认的控制台编码可能不是 UTF-8,这会导致中文显示为乱码。可以通过以下代码将控制台编码设置为 UTF-8: ```cpp #include <windows.h> #include <QString> #include <QDebug> int main() { SetConsoleOutputCP(CP_UTF8); // 设置控制台输编码为 UTF-8 QString chineseText = "你好,世界"; qDebug() << chineseText; return 0; } ``` 通过调用 `SetConsoleOutputCP(CP_UTF8)`,可以确保中文字符能够正确显示在 Windows 控制台中[^4]。 #### 4. 使用 `QTextStream` 输到文件或标准输 如果需要将中文信息到文件或其他流中,可以使用 `QTextStream`。示例如下: ```cpp #include <QTextStream> #include <QString> int main() { QString chineseText = "你好,世界"; QTextStream out(stdout); // 创建一个标准输流 out.setCodec("UTF-8"); // 设置编码为 UTF-8 out << chineseText << endl; return 0; } ``` 此方法适用于需要将中文信息到文件或其他非控制台环境的场景[^5]。 --- ### 注意事项 - 如果仍然现乱码问题,请检查项目的编码设置是否与源文件一致。 - 在调试时,建议使用 `qDebug()` 输信息,因为它对 Unicode 的支持较好。 - 对于跨平台应用,尽量避免直接依赖操作系统的编码设置,而是统一使用 UTF-8 编码。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值