【手把手带你刷好题】—— 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天!

加油吧少年。

 


相关文章
|
存储 算法 Serverless
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
75 0
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
|
8月前
|
算法
六六力扣刷题字符串之重复的子字符串
六六力扣刷题字符串之重复的子字符串
71 0
|
8月前
|
算法
六六力扣刷题数组之再刷二分法
六六力扣刷题数组之再刷二分法
47 0
|
算法 安全
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
|
Python Cloud Native
【刷题日记】415. 字符串相加
本次刷题日记的第 48 篇,力扣题为:415. 字符串相加 ,简单
|
算法 Java
代码随想录算法训练营第十天 | KMP算法 字符串总结 双指针回顾
代码随想录算法训练营第十天 | KMP算法 字符串总结 双指针回顾
109 0
|
JavaScript
刷 leetcode有效的括号 | 刷题打卡
刷 leetcode有效的括号 | 刷题打卡
100 0
【每日算法/刷穿 LeetCode】992. K 个不同整数的子数组(困难)
【每日算法/刷穿 LeetCode】992. K 个不同整数的子数组(困难)