news 2026/6/14 18:51:41

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 7:40:05

英伟达Tegra Note:芯片厂商如何通过参考设计重塑中端平板体验

1. 项目概述&#xff1a;英伟达的“参考设计”突围战2013年的移动计算市场&#xff0c;正处在一个微妙的分水岭。苹果的iPad定义了高端&#xff0c;亚马逊的Kindle Fire搅动了低端&#xff0c;而安卓平板阵营则陷入了一场同质化的混战。彼时&#xff0c;作为图形处理器和移动So…

作者头像 李华
网站建设 2026/5/13 7:39:41

半导体行业动态:从制造检测到EDA生态的2012年技术演进

1. 行业动态综述&#xff1a;从工具演进到生态构建又到了每周梳理行业动态的时候。这周的消息挺有意思&#xff0c;不像往常那样集中在某个单一热点上&#xff0c;而是像一幅拼图&#xff0c;从半导体制造的底层设备、EDA/IP工具链的创新&#xff0c;到嵌入式开发的生态扶持&am…

作者头像 李华
网站建设 2026/5/13 7:38:15

ARM架构CLIDR_EL1寄存器解析与缓存优化实践

1. ARM架构中的CLIDR_EL1寄存器深度解析在ARMv8/v9架构中&#xff0c;缓存管理是系统性能优化的核心环节。作为缓存层级识别寄存器&#xff0c;CLIDR_EL1(Cache Level ID Register)为开发者提供了关键的低层缓存拓扑信息。这个64位寄存器不仅揭示了处理器缓存层级的具体实现&am…

作者头像 李华
网站建设 2026/5/13 7:37:29

从航空故障到系统设计:可靠性工程的通用思维与实践

1. 从飞行轶事到工程思维&#xff1a;一次故障背后的系统设计启示最近在整理资料时&#xff0c;翻到一篇十多年前的老文章&#xff0c;标题叫《旅行噩梦&#xff1a;飞行事故》。文章本身是EE Times上的一篇博客&#xff0c;作者Brian Bailey分享了几位工程师同行在商务差旅中遭…

作者头像 李华