C++ 判断回文串:代码实现与技巧
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++ 代码判断一个字符串是否为回文串,并提供了代码示例和技巧。希望本文能够帮助您更好地理解回文串的判断方法。
原文地址: https://www.cveoy.top/t/topic/knf0 著作权归作者所有。请勿转载和采集!