c++习题25-判断字符串是否回文

news2024/11/26 15:01:01

目录

一,题目

二,思路

三,代码


一,题目

描述

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

输入描述

输入为一行字符串(字符串中没有空白字符,字符串长度不超过100)。

输出描述

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

用例输入 1 

abcdedcba

用例输出 1 

yes

二,思路

后来我觉得上图中的文字太红,不利于观看,而且也没必要再搞一张图,因此我将步骤搞成文字,如下👇

  1. 字符串长度不超过100,定义长度为101的字符数组a[101];
  2. 在遍历字符数组时,要进行相应的判断:字符串的第一个字符是否和字符串的最后一个字符相同,第二个字符是否和倒数第二个字符相同,等等。结合回文的定义,只要知道前一半的字符串,那么后一半的字符串就可以通过相关的表达式得到,因此不需要遍历整个字符数组,只需要遍历字符数组的的前一半strlen(a)/2(包含且作为遍历条件)就行;
  3. 例如字符串“aba”,字符数组中元素个数为3,第一个字符下标为0,倒数第一个字符的下标为2;字符串“abba”,字符数组中元素个数为4,第一个字符下标为0,倒数第一个字符的下标为3;可以看到,第一个字符的下标都是从0开始,但是倒数第一个字符的下标因字符串的长度而异,这个时候就需要写出相关的表达式,将字符与字符数组下标及字符数组中元素个数关联起来,得出:倒数第一个字符的下标=字符串长度–第一个字符的下标-1。同理可得:倒数第二个字符的下标=字符数组中元素个数–第二个字符的下标-1,等等。给定一个从0开始的变量i,依次遍历字符数组aba,当i=0时,a[0]表示字符数组的第一个字符,此时倒数第一个字符就是:a[strlen(a)-i-1]=a[3-0-1]=a[2];
  4. 一旦判断结果有不相等的,则输出“no”,并且结束整个程序。如果遍历了整个字符数组之后,程序还没有结束,则表示这个字符串是回文的,输出“yes”即可。
     

三,代码

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

 也可以立一个旗帜,当对称的两个字符相等时,旗帜立着,如果两个字符不相等,没必要接着循环判断,此时已经知道该字符串不是回文,就让旗帜倒下,并且跳出循环。最后根据旗帜的状态来输出相应的语句即可,如下👇

#include <bits/stdc++.h>
using namespace std;
int main()
{
	char a[1001];
	cin >> a;
	int l = strlen(a), f = 1;
	for (int i = 0; a[i] != '\0' & i <= l / 2; i++)
	{
		if (a[i] == a[l - 1 - i])	f = 1;
		else
		{
			f = 0;
			break;
		}
	}
	if (f)  cout << "yes";
	else	cout << "no";
	return 0;
}

 有问题请在评论区留言或者是私信我,回复时间不超过一天。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux文件属性和打包压缩详解

1、文件属性体系 1.1 文件系统概述 [rootyunwei /]# ls -lhi 总用量 72K3505 lrwxrwxrwx. 1 root root 7 3月 7 2019 bin -> usr/bin 262152 dr-xr-xr-x. 5 root root 4.0K 12月 19 16:00 boot 399635 drwxr-xr-x 2 root root 4.0K 11月 5 2019 data1026 drw…

【数据结构】二叉树基础知识

0. 前言 在前面几期博客&#xff0c;我们已经学习过了各种线性的数据结构&#xff0c;顺序表、链表、栈、队列&#xff0c; 本期博客我们一起来学习一种非线性的结构——树 1. 树的概念及结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>…

学习嵌入式第二十九天

ipc进程间通信方式 PC&#xff0c;即进程间通信&#xff08;Inter-Process Communication&#xff09;&#xff0c;是操作系统中不同进程之间交换数据的一种机制。以下是一些常见的IPC方式&#xff1a; 管道&#xff1a;用于父子进程或兄弟进程之间的通信。消息队列&#xff…

火绒一键修复所有dll缺失?教你快速修复dll错误问题

你的电脑是否遇到过dll文件缺失的状态&#xff1f;那么应该如何将dll文件进行修复&#xff0c;不知道大家有没有听过火绒和电脑dll修复工具一键修复所有的dll缺失&#xff1f;今天我们就来了解一下如何使用火绒和电脑dll修复工具修复电脑错误dll文件丢失的问题。 dll是什么&…

海南云亿商务咨询有限公司靠谱不?

在这个短视频与直播浪潮席卷而来的时代&#xff0c;抖音电商以其独特的魅力迅速崛起&#xff0c;成为无数商家争相入驻的新战场。作为这一领域的佼佼者&#xff0c;海南云亿商务咨询有限公司凭借其专业的服务、前瞻性的视野和实战型的策略&#xff0c;正引领着一批又一批的商家…

【C语言进阶】数据如何安家?C语言内存中的存储艺术深度解析

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言调试 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀C语言数据在内存中的存储 &#…

如何应对突发技术故障和危机:开发团队的应急策略

开发团队如何应对突发的技术故障和危机&#xff1f; 在数字化时代&#xff0c;软件服务的稳定性对于企业至关重要。然而&#xff0c;即使是大型平台&#xff0c;如网易云音乐&#xff0c;也可能遇到突发的技术故障。网页端出现502 Bad Gateway 报错&#xff0c;且App也无法正常…

云计算day30

1. 配置⼀主⼆从mysql57 1. mycat对mysql8不完全⽀持 2. mysql8主从问题不⼤ get_pub_key1 1. gtids事务复制 2. 删除/etc/my.cnf 3. 同步data⽂件需要先停⽤mysql服务&#xff0c;删除data⽬录中的 auto.cnf 4. gtid模式以及经典模式都需要锁表 flush tables with rea…

6 - Linux PXE高效批量网络装机

目录 一、PXE概述 1.简介 2.优点 3.前提条件 二、搭建PXE远程安装服务器 三、实现Kickstart无人值守安装 一、PXE概述 1.简介 PXE&#xff08;Preboot eXcution Environment&#xff09;预启动执行环境&#xff0c;是由Intel公司开发的网络引导技术&#xff0c;工作在Cl…

工业4G路由器

设备概述 路由器是基于4G 技术研发的无线路由网关设备&#xff0c;除了具备传统路由器 的 VPN 、防火墙、 NAT 、 PPPoE 、 DHCP 等功能之外&#xff0c;还能支持 4G 无线拨号&#xff0c;提供最高可达 150Mbps 的无线高速带宽。路由器支持四个以太网接口&#xff0c;可更好…

招募活动投稿展示 | 感受科技温度,从一个 LLM 应用开始

活动介绍 谷歌开发者招募活动是专为 Google 技术的爱好者及开发者们开展的活动&#xff0c;旨在鼓励大家通过多种形式 (文章/视频/coding 等) 创作与 Google 技术相关的讲解分享、实践案例或活动感受等内容&#xff0c;展示代码、框架、平台在真实世界中的生动表现&#xff0c;…

【Win开发环境搭建】Redis与可视化工具详细安装与配置过程

&#x1f3af;导读&#xff1a;本文档提供了Redis的简介、安装指南、配置教程及常见操作方法。包括了安装包的选择与配置环境变量的过程&#xff0c;详细说明了如何通过修改配置文件来设置密码和端口等内容。同时&#xff0c;文档还介绍了如何使用命令行工具连接Redis&#xff…

商品数据获取api接口:电商API接口助力内部平台商品定价!

对于很多电商内部平台来讲&#xff0c;品牌方在为内部平台的商品定价时&#xff0c;通常会获取主流电商平台的商品数据以供参考&#xff0c;具体来看&#xff0c;这主要涉及以下步骤&#xff1a; 选择合适的API接口服务商。电商API接口能够提供来自多个主流电商平台的商品数据…

06--kubernetes.pod管理与投射数据卷

前言&#xff1a;上一章记录了部署k8s常用的两个方式&#xff0c;这一章就简单一些&#xff0c;整理一下k8s资源对象的配置和管理命令。 1、集群状态检查 前天搭建的环境&#xff0c;然后关机了两天今天开启后第一时间需要检查集群环境是否正常 [rootk8s-master1 ~]# kubect…

【html+css 绚丽Loading】000012 五行伸缩杖

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

js禁用浏览器缩放

禁用crtl- &#xff0c;禁用crtl滚轮 但是不能禁用浏览器本身的设置 代码如下&#xff1a; <script> //luwenjie hualunwindow.addEventListener(mousewheel, function(event){if (event.ctrlKey true || event.metaKey) {event.preventDefault();}},{ passive: fals…

数学建模算法总结

数学建模常见算法总结 评价决策类模型 层次分析法 层次分析法根据问题的性质和要达到的总目的&#xff0c;将问题分解为不同的组成因素&#xff0c;并按照因素间的相互关联影响以及隶属关系将因素按不同层次聚集组合&#xff0c;形成一个多层次的分析结构模型&#xff0c;从…

Go 文件操作基本方法大全

前言 在Go语言中&#xff0c;操作文件主要依赖于标准库中的os和io/ioutil&#xff08;注意&#xff1a;io/ioutil在Go 1.16及以后版本中被逐步弃用&#xff0c;推荐使用io和os包中的函数进行替代&#xff09;以及io和bufio等包。以下是一些基于这些基本库操作文件的方法大全&a…

人工智能时代:哪些职业将被取代,哪些职业难以替代?

引言 人工智能&#xff08;AI&#xff09;作为现代科技领域最引人瞩目的创新之一&#xff0c;正以前所未有的速度改变着我们的生活和工作方式。从20世纪50年代AI概念的诞生&#xff0c;到21世纪初的机器学习突破&#xff0c;再到如今深度学习与大数据的结合&#xff0c;人工智能…