C++ 判断回文串:代码实现与技巧

题目描述

输入一个字符串,判断其是否为回文串。 回文串指正着读和倒着读是一模一样的串,比如 'abcba'、'xyyzzyyx'。

注意:若使用 getchar()进行读入,需要注意:此题的换行符不是 '\n',不要用 '\n' 判定输入是否结束,而可以检查最后一个字符是否为小写字母(大于等于'a'且小于等于‘z’)判定输入是否结束!

输入格式

从标准输入读入数据。 输入一个字符串(长度 $n\le1000$,只包含小写英文字母)。

输出格式

输出到标准输出。 输出 'YES'(表示是回文串)或 'NO'(表示不是回文串)。

代码实现

#include <iostream>
#include <cstring>
using namespace std;

int main() {
    char s[1005];
    cin >> s;
    int len = strlen(s);
    for (int i = 0; i < len / 2; i++) {
        if (s[i] != s[len - i - 1]) {
            cout << "NO" << endl;
            return 0;
        }
    }
    cout << "YES" << endl;
    return 0;
}

技巧

  • 使用 strlen 函数获取字符串长度。
  • 使用循环遍历字符串的前半部分,并判断对应位置的字符是否相等。
  • 如果遇到不相等的字符,则直接输出 'NO' 并结束程序。
  • 如果循环结束,则表示字符串是回文串,输出 'YES'。
  • 注意处理特殊字符,例如换行符。

代码分析

代码中首先定义了一个字符数组 s 来存储输入的字符串,然后使用 cin 从标准输入中读取字符串。

接着,使用 strlen 函数获取字符串的长度,并将长度存储在变量 len 中。

然后,使用一个循环遍历字符串的前半部分,并判断对应位置的字符是否相等。

如果遇到不相等的字符,则直接输出 'NO' 并结束程序。

如果循环结束,则表示字符串是回文串,输出 'YES'。

总结

本文介绍了如何使用 C++ 代码判断一个字符串是否为回文串,并提供了代码示例和技巧。希望本文能够帮助您更好地理解回文串的判断方法。

C++ 判断回文串:代码实现与技巧

原文地址: https://www.cveoy.top/t/topic/knf0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录