【题目链接】

ybt 1146:判断字符串是否为回文
OpenJudge NOI 1.7 33:判断字符串是否为回文

【题目考点】

1. 字符串遍历

如何遍历字符串的一半?
如果字符串长度为len,那么len/2指向中间或中间偏左的位置。
如图:
如果将遍历的循环过程写为:
for(int i = 0; i < len/2; ++i)
那么即为遍历字符串的左半边

【题解思路及代码】

解法1:遍历一半字符串

判断一个字符串是不是回文字符串,就看前后对应字符是否相同
第0个字符和第len-1字符对应,
第1字符和第len-2字符对应。。。
第i字符和第len-i-1字符对应
所以遍历一半字符串,判断条件为s[i] == s[len-i-1],如果不满足,则该字符串不是回文字符串。

#include<bits/stdc++.h>
using namespace std;
int main()
{char s[105];cin >> s;int len = strlen(s);for(int i = 0; i < len/2; ++i){if(s[i] != s[len-i-1]){cout << "no";return 0;}}cout << "yes";return 0;
}

解法2:设两个变量下标

设下标i从前向后遍历,同时设下标j从后向前遍历,看i,j指向的字符是否相同。如果不同,那么不是回文字符串。

#include<bits/stdc++.h>
using namespace std;
int main()
{char s[105];cin>>s;int len = strlen(s);for(int i = 0, j = len - 1; i < j; ++i, --j){if(s[i] != s[j]){cout << "no";return 0;}}cout << "yes";return 0;
}

解法3:使用倒转字符串函数

使用algorithm中的reverse函数,翻转字符串

#include<bits/stdc++.h>
using namespace std;
int main()
{string s1, s2;cin>>s1;s2 = s1;//复制s1到s2reverse(s2.begin(), s2.end());//将s2前后翻转if(s1 == s2)//如果s1和s2相同cout << "yes";elsecout << "no";return 0;
}

信息学奥赛一本通 1146:判断字符串是否为回文 | OpenJudge NOI 1.7 33:判断字符串是否为回文相关推荐

  1. 信息学奥赛一本通 1245:不重复地输出数 | OpenJudge NOI 1.11 08:不重复地输出数

    [题目链接] ybt 1245:不重复地输出数 OpenJudge NOI 1.11 08:不重复地输出数 [题目考点] 1. 二分查找 2. 复杂度为O(nlogn)的排序 快速排序:时间复杂度O( ...

  2. 信息学奥赛一本通 1411:区间内的真素数 | OpenJudge NOI 1.13 23:区间内的真素数

    [题目链接] ybt 1411:区间内的真素数 OpenJudge NOI 1.13 23:区间内的真素数 [题目考点] 1. 质数 2. 数字拆分 [解题思路] 设函数判断一个数是否是质数 设函数求 ...

  3. 信息学奥赛一本通 1099:第n小的质数 | OpenJudge NOI 1.5 44

    [题目链接] ybt 1099:第n小的质数 OpenJudge NOI 1.5 44:第n小的质数 [题目考点] 1. 质数 质数的因数只有1和它本身. 判断数a是否是质数:循环变量i从2开始循环到 ...

  4. 信息学奥赛一本通 1094:与7无关的数 | OpenJudge NOI 1.5 39

    [题目链接] ybt 1094:与7无关的数 OpenJudge NOI 1.5 39:与7无关的数 [题目考点] 1. 分离整数的各位数字 对于数字a,a%10可以取到其个位,a/=10(整除)可以 ...

  5. 信息学奥赛一本通 1066:满足条件的数累加 | OpenJudge NOI 1.5 10

    [题目链接] ybt 1066:满足条件的数累加 OpenJudge NOI 1.5 10:满足条件的数累加 [题目考点] 1. 循环求和 设置加和变量s,记住要将其初始化为0.int s = 0; ...

  6. 信息学奥赛一本通 1031:反向输出一个三位数 | OpenJudge NOI 1.3 13

    [题目链接] ybt 1031:反向输出一个三位数 OpenJudge NOI 1.3 13:反向输出一个三位数 [题目考点] 1. 分离固定数位数字的各位上的数字 先举例说明: 对于三位数123,其 ...

  7. 信息学奥赛一本通 1170:计算2的N次方 | OpenJudge NOI 1.6 12:计算2的N次方

    [题目链接] ybt 1170:计算2的N次方 OpenJudge NOI 1.6 12:计算2的N次方 [题目考点] 1. 高精度 考察:高精乘低精 高精度计算讲解 2. 快速幂 [解题思路] 先估 ...

  8. 信息学奥赛一本通 1405:质数的和与积 | OpenJudge NOI 2.1 7827:质数的和与积 | 小学奥数 7827

    [题目链接] ybt 1405:质数的和与积 OpenJudge NOI 2.1 7827:质数的和与积 OpenJudge NOI 小学奥数 7827:质数的和与积 [题目考点] 1. 枚举 [解题 ...

  9. 信息学奥赛一本通 1397:简单算术表达式求值 | OpenJudge NOI 1.12 01:简单算术表达式求值

    [题目链接] ybt 1397:简单算术表达式求值 OpenJudge NOI 1.12 01:简单算术表达式求值 [题目考点] 1. 函数 2. 选择结构 [解题思路] 这一章节都是练习函数,那么这 ...

最新文章

  1. 我为什么更喜欢 Mac OS X
  2. 查找nginx安装的路径以及相关安装操作命令
  3. 最近项目用到Dubbo框架,临时抱佛脚分享一下共探讨(转)
  4. 如何添加sersync进程监控脚本
  5. 使用Lambda表达式遍历Iterator迭代器
  6. CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群
  7. 如何打造园本特色_如何确立办园特色
  8. ZOJ - 3591 NIM
  9. threadlocal的set()方法中的内存回收
  10. c# 数组中的空值_2.1.1 聊聊 C# 的版本及特性
  11. clion配置opencv3.20(cmake+tdm-gcc)
  12. 敏捷管理-PDCA循环(戴明环)
  13. 微型计算机基础理论——微处理器工作概述
  14. crmphp_PHP开源CRM-推荐几个
  15. zheng项目系统简单的分析记录
  16. CDH安全认证及使用
  17. Not annotated parameter overrides @NonNullApi parameter
  18. 计算机丢失文件无法打开ae,AE打开aep工程文件提示文件丢失的图文解决教程
  19. 什么是外包公司,外包公司与互联网公司的区别
  20. 命令行工具(Command line tools)

热门文章

  1. 图像处理——图像增强
  2. order by 中 使用decode
  3. Oracle分页的SQL语句
  4. asp.net最常用的三十三种编程代码
  5. sourceforge.net cvs sample
  6. Eclipse安装Alibaba Cloud Toolkit并连接阿里云云数据库
  7. ​什么问题最让程序员头秃?我们分析了11种语言的11000个问题
  8. Simulink之三相半波可控整流电路
  9. STM32之外部中断原理
  10. python登录系统的实现方法_python实现简单登陆系统