【手把手带你刷好题】—— 50.回文串(字符串)

简介: 回文串(字符串)

【前言】

今天是刷题打卡第50天!

半百咯,加油加油。

 

原题:回文串(字符串)

题目描述:

读入一串字符,判断是否是“回文串”。“回文串” 是一个正读和反读都一样的字符串,比如“level” 或者 “noon” 就是回文串。  

输入格式:

一行字符串,长度不超过255

输出格式:

如果是回文串,输出“YES”,否则输出“NO”

样例输入:

12321

样例输出:

YES

思路:

假设字符串str 的下标是从0 开始的,由于“回文串” 是正读和反读都一样的字符串,因此只需要遍历字符串的前一半(注意:不需要取到 i == len / 2),如果出现字符str[i]不等于其对称位置str[len - 1 - i],就说明这个字符串不是回文串;如果前一半的所有字符str[i] 都等于对称位置的str[len - 1 - i],那么就说明这个字符串是“回文串”

代码执行:

#include<stdio.h>
#include<string.h>
#define MAXN 256
//判断字符串str是否是回文串
bool judge(char* str)
{
  int len = strlen(str);
  int i = 0;
  for (i = 0; i < len / 2; i++)
  {
    if (str[i] != str[len - 1 - i])
    {
      return false;
    }
  }
  return true;
}
int main()
{
  char str[MAXN] = { 0 };
  while (gets(str))//读入字符串
  {
    bool flag = judge(str);
    if (flag == true)
      printf("YES\n");
    else
      printf("NO\n")
  }
  return 0;
}


结语

今天是刷题打卡第50天!

加油吧少年。

 


相关文章
|
6月前
|
数据安全/隐私保护 C++ 索引
【一刷《剑指Offer》】面试题 4:替换空格
【一刷《剑指Offer》】面试题 4:替换空格
|
6月前
|
Java
每日一刷《剑指offer》字符串篇之左旋转字符串
每日一刷《剑指offer》字符串篇之左旋转字符串
55 0
每日一刷《剑指offer》字符串篇之左旋转字符串
|
6月前
|
人工智能 算法 Java
每日一刷《剑指offer》字符串篇之编辑距离
每日一刷《剑指offer》字符串篇之编辑距离
65 0
每日一刷《剑指offer》字符串篇之编辑距离
|
算法
代码随想录算法训练营第八天 | LeetCode 344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
代码随想录算法训练营第八天 | LeetCode 344.反转字符串、541. 反转字符串II、剑指Offer 05.替换空格、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
59 0
|
算法
代码随想录算法训练营第二十八天 | LeetCode 491. 递增子序列、46. 全排列、47. 全排列 II
代码随想录算法训练营第二十八天 | LeetCode 491. 递增子序列、46. 全排列、47. 全排列 II
60 0
|
存储 人工智能 算法
2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记
2022 数据结构与算法《王道》学习笔记 (十)串 KMP算法 串的总结 课后习题笔记
|
算法 索引
代码随想录算法训练营第八天 | 344.反转字符串541. 反转字符串II 剑指Offer 05.替换空格151.翻转字符串里的单词剑指Offer58-II.左旋转字符串
代码随想录算法训练营第八天 | 344.反转字符串541. 反转字符串II 剑指Offer 05.替换空格151.翻转字符串里的单词剑指Offer58-II.左旋转字符串
《蓝桥杯每日一题》双指针·AcWing 3768. 字符串删减
《蓝桥杯每日一题》双指针·AcWing 3768. 字符串删减
62 0
|
算法 Java
代码随想录算法训练营第十天 | KMP算法 字符串总结 双指针回顾
代码随想录算法训练营第十天 | KMP算法 字符串总结 双指针回顾
103 0
|
JavaScript
刷 leetcode有效的括号 | 刷题打卡
刷 leetcode有效的括号 | 刷题打卡
90 0