当前位置: 首页 > news >正文

csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:判断字符串是否为回文

csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:判断字符串是否为回文

题目描述

输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。

输入格式

输入一行字符串,长度小于100 100100

输出格式

如果字符串是回文,输出yes;否则,输出no

输入输出样例 1
输入 1
abcdedcba
输出 1
yes

思路分析(方法1)

要判断一个字符串是否为回文,只需比较字符串的第i个字符与倒数第i个字符是否相等,直到中间位置。

  • 读取整行字符串(可能包含空格)。
  • 使用双指针i(头)和j(尾),初始i = 0j = s.length() - 1
  • 循环条件i < j,每次比较s[i]s[j]
    • 若不同,输出no并结束程序。
    • 若相同,i++j--继续比较。
  • 循环正常结束说明是回文,输出yes

代码实现(方法1)

#include<bits/stdc++.h>usingnamespacestd;intmain(){string s;getline(cin,s);//读取整行字符串inti=0,j=s.size()-1;//双指针指向首尾while(i<j){if(s[i]!=s[j]){//对应字符不同cout<<"no"<<endl;return0;}i++;//左指针右移j--;//右指针左移}cout<<"yes"<<endl;return0;}

功能分析(方法1)

  • 输入处理:使用getline读取整行,允许字符串中包含空格,符合题目“一行字符串”的描述。

  • 回文判断:双指针从两端向中间逐个字符比较,一旦发现不相等立即输出no并退出;若全部相等则输出yes

  • 时间复杂度:O(n),n 为字符串长度,最大 100,效率极高。

  • 空间复杂度:O(1),仅使用了常数个额外变量。

思路分析(方法2)

使用reverse方法:

  1. 读取原始字符串s
  2. 将其复制到另一个字符串t中。
  3. 反转t
  4. 比较st是否相等:
    • 相等则输出yes
    • 否则输出no

这种方法简单直观,直接利用 STL 的reverse函数。

代码实现(方法2)

#include<bits/stdc++.h>usingnamespacestd;intmain(){string s,t;getline(cin,s);//读取原字符串t=s;//复制到treverse(t.begin(),t.end());//反转tif(s==t)//比较原串与反转串cout<<"yes"<<endl;elsecout<<"no"<<endl;return0;}

功能分析(方法2)

  • 输入:使用getline读取一行,支持空格。
  • 处理reverse将字符串首尾颠倒,时间复杂度 O(n)。
  • 判断:直接比较原串与反转串是否相等,简单可靠。
  • 输出:符合题目要求的yesno

【完整系列请查看专栏】:
信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转


各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

【秘籍汇总】(完整csp信奥赛C++学习资料):

1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

https://edu.csdn.net/lecturer/7901 点击跳转

2、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

https://edu.csdn.net/course/detail/41081 点击跳转

3、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

4、csp信奥赛冲刺一等奖有效刷题题解:

信奥赛C++普及组CSP-J一等奖通关刷题题单及题解:
https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

信奥赛C++提高组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

5、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}
http://www.jsqmd.com/news/807439/

相关文章:

  • VMware Guest虚拟机失去响应的排查方法
  • 太原大件货运
  • 机器人伦理工程化:从道德困境到可解释决策系统的技术实现
  • 云平台赋能门禁终端,打造智慧社区一体化管理
  • 工程师着装文化变迁:从安全规范到效率优化
  • MemOS:为AI智能体构建长期记忆操作系统的实战指南
  • 与 C++ auto 关键字作用类似的关键字 / 语法
  • 替代RCF陶瓷纤维的生产工厂盘点 - 品牌排行榜
  • DownKyi:5个步骤掌握B站视频下载的终极技巧
  • 开源协作平台架构设计:从代码托管到CI/CD的DevOps实践
  • ARM架构TLB失效指令VALE2OS/VALE3OS详解
  • 图片怎么去水印?2026免费图片去水印工具推荐与主流方法全解析
  • 视觉Transformer计算效率优化:CI2P-ViT架构解析
  • 从摩尔定律到产业变迁:一位半导体编辑的VLSI时代观察与思考
  • 巴西电子市场机遇与挑战:从消费热土到产业生态的深度解析
  • 专业级Windows右键菜单优化工具:彻底解放你的右键效率革命
  • 如何在3分钟内实现iOS设备虚拟定位?iFakeLocation实战指南
  • 零基础避坑指南什么工具可以录音转待办
  • 京城信德斋|高价回收各类字画,免费鉴定 + 当场回款 - 品牌排行榜单
  • 资本能砸钱,却砸不出《凰标》里的东方风骨@凤凰标志
  • AzurLaneAutoScript:7×24小时智能管家,解放碧蓝航线玩家的双手
  • 5分钟解锁你的网易云音乐:NCM解密工具全攻略
  • 物联网安全认证:X.509证书的局限与替代方案实战解析
  • csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:最大回文数
  • Agent-Layer:构建多智能体协作系统的中间层框架设计与实践
  • 字画出手选信德斋|名家书画 + 老字画全收,现场全款结清 - 品牌排行榜单
  • 不靠资本、不靠流量:《凰标》凭什么火?@凤凰标志
  • 手机充电器技术演进:从反激拓扑到同步整流的效率革命
  • Laravel 1.x:揭秘PHP框架的起源与设计
  • 基于LLM的智能代码重构工具Refiner:原理、实战与效能提升指南