输入一个长度不超过20的字符串,判断其是否为回文。如果是回文,则输入“YES”,否则输入“NO”。规定单个字符和空字符不是回文
时间: 2024-05-15 15:13:25 浏览: 25
好的,以下是 Python 代码实现:
```python
s = input("请输入一个字符串(长度不超过20):")
if len(s) < 2: # 单个字符和空字符不是回文
print("NO")
else:
if s == s[::-1]: # 判断是否为回文
print("YES")
else:
print("NO")
```
代码会先判断输入字符串长度是否小于 2,如果是则直接输出“NO”。否则,使用字符串切片反转字符串并与原字符串比较,判断是否为回文。
相关问题
用C语言写一个程序,输入一个长度不超过20的字符串,判断这个字符串是否为回文。如果是回文,则输出"YES",否则输出"NO"。
以下是使用C语言编写的程序,可以实现输入一个长度不超过20的字符串,判断其是否为回文:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[21]; // 声明一个长度为21的字符数组,用于存储输入的字符串,包括末尾的'\0'
int len, i, j, flag = 1; // 定义字符串长度、循环变量i和j,以及标志位flag
printf("请输入一个长度不超过20的字符串:");
scanf("%s", str); // 读入字符串
len = strlen(str); // 计算字符串长度
// 从头尾同时遍历字符串,判断对应字符是否相等
for (i = 0, j = len - 1; i < len / 2; i++, j--)
{
if (str[i] != str[j]) // 如果发现不相等的字符
{
flag = 0; // 将标志位设置为0,表示不是回文
break; // 跳出循环
}
}
if (flag) // 如果标志位为1,说明是回文
{
printf("YES\n");
}
else // 否则不是回文
{
printf("NO\n");
}
return 0;
}
```
程序中使用了一个标志位flag,用于判断输入的字符串是否为回文。首先读入字符串并计算其长度,然后从头尾同时遍历字符串,判断对应字符是否相等,如果发现不相等的字符,则将标志位设置为0并跳出循环,最后根据标志位输出结果。
1776 判断字符串回文 描述 输入一个字符串,判断是不是回文字符串 输入 字符串,其中没有空格,字符串的最大长度20个字符 输出 YES或NO,如果是回文字符串就输出YES,否则输出NO 输入样例 1 abcabcabcabc 输出样例 1 NO 来源
要判断一个字符串是否为回文,我们需要比较字符串从前往后读和从后往前读是否相同。这里是一个简单的C++程序,用于实现这个功能:
```cpp
#include <iostream>
#include <string>
bool isPalindrome(const std::string& str) {
int start = 0;
int end = str.length() - 1;
while (start < end) {
if (str[start] != str[end]) {
return false; // 如果任意一对字符不相等,说明不是回文
}
start++;
end--;
}
return true; // 遍历结束且所有字符都匹配,说明是回文
}
int main() {
std::string input;
std::cout << "请输入字符串(最大长度20):";
std::cin >> input;
if (input.length() <= 20) {
if (isPalindrome(input)) {
std::cout << "YES" << std::endl;
} else {
std::cout << "NO" << std::endl;
}
} else {
std::cout << "错误:字符串超过了最大长度20" << std::endl;
}
return 0;
}
```
这个程序首先检查输入的字符串长度是否在20个字符以内。然后使用两个指针`start`和`end`,开始时分别指向字符串的首尾,每次循环它们都会向中间移动并检查对应位置的字符是否相等。如果任何时候发现不相等,立即返回`false`;当所有字符都检查过且相等时,返回`true`。
阅读全文