合法回文
给定一个字符串,判断是不是回文字符串。只考虑字符串中的数字、字母,并且同一个字母的大写和小写是等价的。
例如:
A man, a plan, a canal: Panama 是回文。
race a car 不是回文。
注意:在这道题目中,我们认为 空串是回文字符串。
输入格式
输入有多行,以 EOF 结束。每行输入一个长度不超过 500 的字符串。
输出格式
对于每行输入,判断是否是符合题目要求的回文。如果是,则输出一行 true;否则输出一行 false。
样例输入
Live on evasions? No, I save no evil.
样例输出
true

问题链接:JSK-58 合法回文
问题描述:(略)
问题分析
    回文问题,通过左右2个指针(实际为下标)进行比较,2个指针逐步往中间收缩。
    需要注意字符转换和跳过无关的字符。
程序说明
    头文件ctype.h中声明了字符有关的判断和转换函数(实际上多为宏定义)。尽量使用这些函数则使得程序代码更加简洁,并且不易产生BUG。
参考链接:(略)
题记:能不用库函数则用库函数。

AC的C语言程序如下:

/* JSK-58 合法回文 */#include <stdio.h>
#include <string.h>
#include <ctype.h>#define N 500char s[N + 1];int main(void)
{while(gets(s) != NULL) {int left = 0;int right = strlen(s) - 1;int flag = 1;while(left < right) {if(!isalnum(s[left])) {left++;continue;}if(!isalnum(s[right])) {right--;continue;}char a = (isalpha(s[left]) && isupper(s[left])) ? tolower(s[left]) : s[left];char b = (isalpha(s[right]) && isupper(s[right])) ? tolower(s[right]) : s[right];if(a != b) {flag = 0;break;} elseleft++, right--;}// 输出结果printf("%s\n", flag ? "true" : "false");}return 0;
}

JSK-58 合法回文【字符串】相关推荐

  1. C语言判断回文字符串

    C语言判断回文字符串 #include<stdio.h> char *huiwen(char *str){int i, j,t=0;for(i = 0,j = strlen(str) - ...

  2. NYOJ 回文字符串

    回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba".当然, ...

  3. java判断回文字符串几种简单的实现

    11年it研发经验,从一个会计转行为算法工程师,学过C#,c++,java,android,php,go,js,python,CNN神经网络,四千多篇博文,三千多篇原创,只为与你分享,共同成长,一起进 ...

  4. 题目1192:回文字符串

    题目描述: 给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的. 输入: 输入包括一行字符串,其长度不超过1000. 输出: 可能有多组测试数据,对于每组数据,如果是回文字符串 ...

  5. 51nod 1092 回文字符串

    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间 ...

  6. 判断字符串_python实现--判断回文字符串、回文链表、回文数

    所谓回文字符串,就是正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.即是对称结构Python系列教程,免费获取,遇到bug及时反馈, ...

  7. Palindrome(插入字符变成回文字符串)

    题目:给定一个字符串,问最少插入多少字符,使字符串变成回文字符串. 思路:X:原字符串 Y:逆字符串 需要插入的字符数=X的长度-(X与Y的LCS的长度)     这里使用了滚动数组,压缩空间,原因: ...

  8. codevs1520 回文字符串

    题解 题目描述 Description 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如: aba kllkllk tyyt 都是. 当然,我们给你的问题不会再简单到判断一个字 ...

  9. 回文字符串啊~---太搞了 少年 DXH

    点击打开链接 j几天比赛了刚好出现了回文字符串,记得不要喝公共自序列区分啊,回文就是从前到后看是一样的,从后往前看也是一样的, 这道题的思路就是先找出本串中自有的回文串,然后再加上不是回文的剩下的子串 ...

最新文章

  1. PHP+MySQL手工注入问题及修复
  2. C#对Excel的样式操作
  3. Aop事务小结(事务管理器和自身构建)
  4. 用c语言编程求主析取范式,求主析取范式.cpp · wangzhankun/C-Programming-Learn - Gitee.com...
  5. ST17H26之pwm功能
  6. 运行返回签名不正确_如果调用约定不匹配,会发生什么?
  7. [Tarjan] 洛谷 P1726 上白泽慧音
  8. matplotlib 设置水平线、垂直线
  9. 【多线程系列】之生产者消费者问题
  10. [转载]幂等和高并发在电商系统中的使用
  11. Windows环境下安装Hadoop+Hive的使用案例
  12. Cheat Engine(CE)教程
  13. 百度程序员删库跑路被逮捕!
  14. 自我总结:找工作面试时注意事项
  15. Android手表商场项目总结
  16. PowerShield (软件加壳工具) PB混淆加密大师
  17. 一切业务数据化,一切数据业务化
  18. linux下如何用gcc编译器生成lst文件?
  19. 2440 wince 5.0 BSP之flash驱动分析
  20. 备案提示 尊敬的ICP用户: 您的短信核验失败,请您重新验证

热门文章

  1. 限制滥用举报功能的小建议
  2. GeoTools——读取shapefile数据
  3. 关于ArcObjects图层编辑的读写编辑锁
  4. android driver log,Android调试驱动抓log的方法
  5. tomcat的服务器目录在哪个文件夹,Tomcat目录结构详细介绍
  6. java map用二叉树_HashMap
  7. SQL对某个字段分组并加序号
  8. MySQL涉及的时间函数
  9. 启动关闭HadoopSpark历史服务
  10. 解决Caused by: GSSException: (Mechanism level: Failed to find any Kerberos tgt)