判断回文字符串

判断回文字符串

  • 题目描述:
  • 解法思路:
  • 解法代码:
  • 运行结果:

题目描述:

输入⼀个字符串,判断这个字符串是否是回文字符串(字符串的长度小于等于30,字符串不包含空格),如果是回文字符串输出Yes,如果不是回文字符串输出No。

测试1:
输⼊:abcdef
输出:No
测试2:
输⼊:abccba
输出:Yes
测试3:
输⼊:abcba
输出:Yes
测试4:
输⼊:a
输出:Yes

解法思路:

我们需要首先理解,回文字符串的特征:

  1. 首位与末位相等;
  2. 第二位与倒数第二位相等;
  3. 最中间的两位相等,或者字符串长度为奇数时,中间字符不影响结果。
    因此,我们可以定义两个指针,分别指向字符串的首位和末位,对其进行判断是否相等。若相等,则将两个指针相向移动⼀位,继续判断剩余字符。如果不相等,直接返回 0,表示字符串不是回文 串。
    直至两个指针的相对位置发⽣变化时结束操作,最终返回 1,表示字符串是回文串。

解法代码:

#include <stdio.h>
#include <string.h>
int is_palindrome_string(char arr[])
{
 //获取字符串⻓度

 int n = strlen(arr);
 //定义两个指针分别指向字符串的⾸位和末位
 char* left = arr;
 char* right = arr + n - 1;
 
 //当两个指针相对位置未发⽣变化时对其进⾏判断
 while (left < right)
 {
 //两字符不相等,返回0,表⽰字符串不是回⽂串
 if (*left != *right)
 return 0;
 //两指针相向移动⼀位
 left++;
 right--;
 }
 //返回1,表⽰字符串是回⽂串
 return 1;
}
int main()
{
 char arr[31]; 
 //输⼊
 scanf("%[^\n]s", arr);
 //判断字符串是否为回⽂串
 int ret = is_palindrome_string(arr);
 
 if (ret == 1)
 printf("Yes\n");
 else
 printf("No\n");
 return 0;
}

运行结果:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

聊一聊日常开发中如何优雅的避免那无处不在的空指针异常

在Java编程语言中&#xff0c;NullPointerException&#xff08;简称NPE&#xff09;是一种常见的运行时异常&#xff0c;当程序试图访问或操作一个还未初始化&#xff08;即值为null&#xff09;的对象引用时&#xff0c;Java虚拟机就会抛出NullPointerException。如果我们在日…

DataWorks(ODPS)性能优化技巧指南

使用阿里云DataWorks进行数据处理的时候&#xff0c;有时候会遇到一个sql或pyodps&#xff08;本质上还是转化为sql&#xff09;执行很长的情况&#xff0c;这个时候有必要对代码进行性能优化。 一、打开ODPS运行评估报告 一个sql脚本执行完毕后&#xff0c;在运维中心的周期…

java中Timer和Timertask的关系

一 time和timertask的关系 1.1 timer和timertask关系 1.Timer来讲就是一个调度器,而TimerTask呢只是一个实现了run方法的一个类&#xff1b; 2.Timer和TimerTask成对出现&#xff0c;Timer是定时器&#xff0c;TimerTask是定时任务。换句话说&#xff0c;定时任务TimerTask是…

程序员必备的linux常用的26条命令

04 穿越功耗墙&#xff0c;我们该从哪些方面提升“性能”&#xff1f; 上一讲&#xff0c;在讲 CPU 的性能时&#xff0c;我们提到了这样一个公式&#xff1a; 程序的 CPU 执行时间 指令数CPIClock Cycle Time 这么来看&#xff0c;如果要提升计算机的性能&#xff0c;我们可以…

鸿蒙实战开发:【SIM卡管理】

概述 本示例展示了电话服务中SIM卡相关功能&#xff0c;包含SIM卡的服务提供商、ISO国家码、归属PLMN号信息&#xff0c;以及默认语音卡功能。 样例展示 基础信息 介绍 本示例使用sim相关接口&#xff0c;展示了电话服务中SIM卡相关功能&#xff0c;包含SIM卡的服务提供商、…

Chat GPT:AI聊天机器人的革命性突破!

一、引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的发展日新月异&#xff0c;其中最具代表性的成果之一便是Chat GPT。这款基于自然语言处理&#xff08;NLP&#xff09;技术的聊天机器人&#xff0c;以其高度智能、灵活多变的特点&#xff0c;迅速吸引了全…

C/C++工程师面试题(STL篇)

STL 中有哪些常见的容器 STL 中容器分为顺序容器、关联式容器、容器适配器三种类型&#xff0c;三种类型容器特性分别如下&#xff1a; 1. 顺序容器 容器并非排序的&#xff0c;元素的插入位置同元素的值无关&#xff0c;包含 vector、deque、list vector&#xff1a;动态数组…

LeetCode-第162题-寻找峰值

1.题目描述 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums&#xff0c;找到峰值元素并返回其索引。数组可能包含多个峰值&#xff0c;在这种情况下&#xff0c;返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间…

Kali Linux 2024.1

Kali Linux 2024.1刚刚发布&#xff0c;标志着这个备受欢迎的安全重点Linux发行版在今年的首次重大更新。以其先进的渗透测试和安全审计功能而闻名&#xff0c;它是安全专业人员和爱好者的首选工具。 Kali 2024.1 亮点 本次发布由 Linux 内核 6.6 提供支持&#xff0c;突出了…

四年一段旅途,一个起点,一个机会

不得不感慨一下&#xff0c;现在的年轻人、大学生实在是太厉害了 最近加入了一个社群&#xff0c;是一名大三学生创建的&#xff0c;他短短一年间&#xff0c;就创建了一个数千人的社群&#xff0c;还运营的几十个副业社群&#xff0c;一年的时间变现100W&#xff0c;这些成绩…

动态前缀和数组:树状数组

前缀和的不足 前缀和是一种常见的算法思想&#xff0c;能够实现在常数时间复杂度下得到某个子区间内所有元素和。以一维数组 nums 为例&#xff0c;定义前缀和数组 preSum&#xff0c;preSum[i] 表示 nums 前 i 个元素的和&#xff0c;利用动态规划的思想&#xff0c;易得 pre…

力扣128. 最长连续序列(哈希表)

Problem: 128. 最长连续序列 文章目录 题目描述思路复杂度Code 题目描述 思路 1.先将数组中的元素存入到一个set集合中&#xff08;去除重复的元素&#xff09; 2.欲找出最长连续序列&#xff08;先定义两个int变量longestSequence和currentSequence用于记录最长连续序列和当前…

HTML5:七天学会基础动画网页7

CSS3高级特效 2D转换方法 移动:translate() 旋转:rotate() 缩放:scale() 倾斜:skew() 属性:transform 作用:对元素进行移动,旋转,缩放,倾斜。 2D移动 设定元素从当前位置移动到给定位置(x,y) 方法 说明 translate(x,y) 2D转换 沿X轴和Y轴移…

【Python】OpenCV-使用ResNet50进行图像分类

使用ResNet50进行图像分类 如何使用ResNet50模型对图像进行分类。 import os import cv2 import numpy as np from tensorflow.keras.applications.resnet50 import ResNet50, preprocess_input, decode_predictions from tensorflow.keras.preprocessing import image# 设置…

【计算机网络】IO多路转接之poll

文章目录 一、poll函数接口二、socket就绪条件三、poll的优点四、poll的缺点五、poll使用案例--只读取数据的server服务器1.err.hpp2.log.hpp3.sock.hpp4.pollServer.hpp5.main.cc 一、poll函数接口 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int t…

EmoLLM(心理健康大模型)——探索心灵的深海,用智能的语言照亮情感的迷雾。

文章目录 介绍&#xff1a;应用地址&#xff1a;模型地址&#xff1a;Github地址&#xff1a;视频介绍&#xff1a;效果图&#xff1a; 介绍&#xff1a; EmoLLM是一个基于 InternLM 等模型微调的心理健康大模型&#xff0c;它涵盖了认知、情感、行为、社会环境、生理健康、心…

Python绘制不同形状词云图

目录 1.基本词云图1.1 导入所需库1.2 准备词汇1.3 配置参数并生成词云图1.4 在Python窗口中显示图片1.5 效果展示1.6 完整代码 2. 不同形状词云图2.1 找到自己所需形状图片2.2 利用PS将图片设置为黑白色2.3 在代码中设置背景2.4 效果展示 1.基本词云图 1.1 导入所需库 import…

2023全球软件开发大会-上海站:探索技术前沿,共筑未来软件生态(附大会核心PPT下载)

随着信息技术的迅猛发展&#xff0c;全球软件开发大会&#xff08;QCon&#xff09;已成为软件行业最具影响力的年度盛会之一。2023年&#xff0c;QCon再次来到上海&#xff0c;汇聚了众多业界精英、技术领袖和开发者&#xff0c;共同探讨软件开发的最新趋势和实践。 一、大会…

IO接口 2月5日学习笔记

1.fgetc 用于从文件中读取一个字符&#xff0c;fgetc 函数每次调用将会返回当前文件指针所指向的字符&#xff0c;并将文件指针指向下一个字符。 int fgetc(FILE *stream); 功能: 从流中读取下一个字符 参数: stream:文件流指针 返回值: …

嵌入式驱动学习第二周——断言机制

前言 这篇博客来聊一聊C/C的断言机制。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 目录 前言1. 断言介绍…