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

加油吧少年。

 


相关文章
|
8月前
|
Java
每日一题《剑指offer》数组篇之和为S的两个数字
每日一题《剑指offer》数组篇之和为S的两个数字
50 0
每日一题《剑指offer》数组篇之和为S的两个数字
|
8月前
|
人工智能 算法 Java
截断数组(蓝桥杯每日一题)
截断数组(蓝桥杯每日一题)
53 0
|
存储 算法 Serverless
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
78 0
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
|
8月前
|
算法
六六力扣刷题字符串之重复的子字符串
六六力扣刷题字符串之重复的子字符串
73 0
|
算法 安全
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
|
机器学习/深度学习 算法
代码随想录训练营day57| 647. 回文子串 516.最长回文子序列
代码随想录训练营day57| 647. 回文子串 516.最长回文子序列
|
SQL 算法 数据挖掘
【边学边敲边记】LeetCode005:最长公共前缀
【边学边敲边记】LeetCode005:最长公共前缀
105 0
【边学边敲边记】LeetCode005:最长公共前缀
|
机器学习/深度学习 SQL 算法
【边学边敲边记】LeetCode003:最长回文子串
【边学边敲边记】LeetCode003:最长回文子串
118 0
【边学边敲边记】LeetCode003:最长回文子串
LeetCode每日一题——481. 神奇字符串
神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成,并需要遵守下面的规则:
147 0