UVA401-镜像回文字符串
作者:yanna00799 | 来源:互联网 | 2024-11-27 13:54
本题探讨了如何判断一个字符串是否为普通回文、镜像回文或两者都不是。通过特定的字符映射表来实现字符串的镜像转换,并根据转换后的结果进行分类。
### 问题描述:
在编程竞赛中,UVA 401 是一道关于回文和镜像字符串的问题。题目要求判断给定的字符串是否为普通回文(从前往后读和从后往前读相同)、镜像回文(每个字符都有其对应的镜像字符且整体形成回文)或者两者都不是。
### 代码示例:
```c
#include
#include
#include
const char *rev = "A 3 HIL JM O 2TUVWXY51SE Z 8 "; // 字符与其镜像字符的映射关系
const char *msg[] = {"不是回文", "普通回文", "镜像字符串", "镜像回文"};
char mirrorChar(char ch) {
if (isalpha(ch)) return rev[ch - 'A'];
return rev[ch - '0' + 25];
}
int main() {
char str[30];
while (scanf("%s", str) == 1) {
int length = strlen(str);
int isPalindrome = 1, isMirrored = 1;
for (int i = 0; i <(length + 1) / 2; i++) {
if (str[i] != str[length - 1 - i]) isPalindrome = 0;
if (mirrorChar(str[i]) != str[length - 1 - i]) isMirrored = 0;
}
printf("%s -- 是 %s.\n\n", str, msg[isMirrored * 2 + isPalindrome]);
}
return 0;
}
```
### 运行结果:
程序将输入的字符串按照上述规则进行分类,并输出相应的结果。例如,对于输入的字符串 'MADAM', 程序会输出 'MADAM -- 是 普通回文.'。
### 说明:
此代码实现了对输入字符串的快速分类,利用了字符数组和条件判断语句来检测字符串是否符合回文或镜像回文的标准。
推荐阅读
-
1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ...
[详细]
蜡笔小新 2024-12-27 19:32:17
-
本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ...
[详细]
蜡笔小新 2024-12-28 09:10:26
-
-
本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ...
[详细]
蜡笔小新 2024-12-27 18:20:43
-
本文将详细介绍如何使用最新版WPS Office for Mac调整Word文档中的文字排列方向。通过这些步骤,用户可以轻松更改文本的水平或垂直排列方式,以满足不同的排版需求。 ...
[详细]
蜡笔小新 2024-12-27 12:34:14
-
本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ...
[详细]
蜡笔小新 2024-12-27 02:22:09
-
本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ...
[详细]
蜡笔小新 2024-12-26 19:08:19
-
QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ...
[详细]
蜡笔小新 2024-12-28 12:33:18
-
本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ...
[详细]
蜡笔小新 2024-12-28 12:07:46
-
2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ...
[详细]
蜡笔小新 2024-12-28 11:58:48
-
本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ...
[详细]
蜡笔小新 2024-12-28 02:40:28
-
本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ...
[详细]
蜡笔小新 2024-12-27 19:44:14
-
在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ...
[详细]
蜡笔小新 2024-12-27 15:26:10
-
本文深入探讨了JavaScript中属性节点的不同类型及其在实际开发中的应用,帮助开发者更好地理解和处理HTML元素的属性。通过具体的案例和代码示例,我们将详细解析如何操作这些属性节点。 ...
[详细]
蜡笔小新 2024-12-27 10:14:47
-
本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ...
[详细]
蜡笔小新 2024-12-26 21:04:46
-
本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ...
[详细]
蜡笔小新 2024-12-26 20:16:36
-
yanna00799
这个家伙很懒,什么也没留下!