AC:Time(29ms)     C++ 4.8.2

#include<stdio.h>
#include<string.h>
char * mirstr = "AAE3EHHIIJLJMM0OS2STTUUVVWWXXYYZ5Z88";
int dispose(char *);
int main(void)
{
char str[];
int state;
while(scanf("%s", str) == )
{
state = dispose(str);
switch(state)
{
case : printf("%s -- is not a palindrome.\n\n", str); break;
case : printf("%s -- is a regular palindrome.\n\n", str); break;
case : printf("%s -- is a mirrored string.\n\n", str); break;
case : printf("%s -- is a mirrored palindrome.\n\n", str); break;
}
} return ;
} int dispose(char * str)
{
int i;
bool palin = true;
bool mirr = true;
int len = strlen(str);
int half_len = len / ;
// 判断回文
for(i = ; i < half_len; i++)
if(str[i] != str[len--i])
palin = false; char * p;
// 判断镜像
for(i = ; i < len; i++)
{
p = strchr(mirstr, str[i]);
if(!p)
{
mirr = false;
break;
} if(p[] == 'O' || p[] == '') // 字母O和数字0单独处理
{ // 一开始这个花括号忘记了,导致最后一个测试数据失败,情况四变成了情况二,通过调试检查出了错误。
if(str[len--i] != 'O' && str[len--i] != '')
{
mirr = false;
break;
}
}
else if(p[] != str[len--i])
{
mirr = false;
break;
}
} if(palin == false && mirr == false)
return ;
else if(palin == true && mirr == false)
return ;
else if(palin == false && mirr == true)
return ;
else
return ; }

最新文章

  1. [moka同学摘录]Yii2.0开发初学者必看
  2. 移动端 移动web屏幕适配方案 随不同宽度的屏幕而改变
  3. .Net 内存池
  4. AI翻译离无障碍交流有多远
  5. MyCat 枚举分片设计思考,查询命中条件
  6. linux内存源码分析 - SLUB分配器概述
  7. 【2019年04月22日】A股最便宜的股票
  8. Java中涉及到金额业务的处理
  9. LibreOJ #6007. 「网络流 24 题」方格取数 最小割 最大点权独立集 最大流
  10. cmd如何进入d盘
  11. 【转】Java 有值类型吗?
  12. C 语言数组越界导致死循环问题
  13. [Agc001E] BBQ Hard
  14. [转载]VS2010怎样打开VS2013或者VS2015建立的工程
  15. Django内置auth模块中login_required装饰器用于类视图的优雅方式
  16. 编写高质量代码–改善python程序的建议(五)
  17. ArcGIS Silverlight 设置token
  18. blockchain notes
  19. win10在CMD操作MySQL时中文显示乱码
  20. 内置组件 &amp;&amp; vue中强大的缓存机制之keep-alive

热门文章

  1. MySQL系列(六)--索引优化
  2. js 表格合并
  3. php静态变量问题
  4. laravel--laravel的重定向类Redirector
  5. redis订阅自动退出
  6. HDU3486 RMQ
  7. NACOS集群搭建遇到的问题
  8. 初探iview
  9. 【weex】publishTask
  10. 关于Layui 响应式移动端轮播图的问题