编程判断输入的一串字符是否为“回文”,如果是则输出Yes,否则输出No,所谓“回文”,是指正读和倒读都一样的字符串。
时间: 2023-06-27 18:01:48 浏览: 277
可以使用双指针法判断一个字符串是否为回文。具体做法是,定义两个指针i和j,分别从字符串的开头和结尾开始遍历,如果s[i]等于s[j],则i向后移动一位,j向前移动一位,继续比较;如果s[i]不等于s[j],则说明不是回文,直接输出No;当i大于等于j时,说明已经比较完了整个字符串,此时输出Yes。
下面是示例代码实现:
```python
def is_palindrome(s):
i, j = 0, len(s) - 1
while i < j:
if s[i] == s[j]:
i += 1
j -= 1
else:
return 'No'
return 'Yes'
```
使用示例:
```python
s = 'abcba'
print(is_palindrome(s)) # Yes
s = 'abcd'
print(is_palindrome(s)) # No
```
相关问题
利用c语言及指针功能编程判断输入的一串字符是否为“回文”,如果是则输出Yes,否则输出No,所谓“回文”,是指正读和倒读都一样的字符串。
以下是使用C语言及指针功能编程判断输入的一串字符是否为回文的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int len, i;
int flag = 1; // 用于标记是否为回文
printf("请输入一个字符串:");
scanf("%s", str);
len = strlen(str);
// 判断是否为回文
for (i = 0; i < len / 2; i++) {
if (*(str + i) != *(str + len - i - 1)) {
flag = 0;
break;
}
}
if (flag) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
首先定义一个字符数组`str`,用于存储输入的字符串。然后使用`scanf`函数读入字符串。接着使用`strlen`函数获取字符串长度。
在判断是否为回文时,使用循环遍历字符串的前一半,对于每个字符,将其与对应位置上的字符进行比较,如果不相等,则标记为非回文。最后根据标记输出相应的结果。
需要注意的是,在判断字符是否相等时,可以使用数组下标访问字符,也可以使用指针访问字符,如上述代码中所示,使用指针访问字符可以更加简洁明了。
利用C语言编写一个程序输入一个字符串。判断该字符串是否为回文。当字符串是回文时输出yes否则输出no。所谓回文是指正向与反向的拼写都一样的字符串
以下是一个用C语言实现判断回文的程序:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i, len, flag = 0;
printf("请输入字符串:");
scanf("%s", str);
len = strlen(str);
for(i=0; i < len/2; i++)
{
if(str[i] != str[len-i-1])
{
flag = 1;
break;
}
}
if(flag == 1)
{
printf("no");
}
else
{
printf("yes");
}
return 0;
}
```
程序先读取一个字符串,然后使用`strlen()`函数来计算字符串的长度。接下来使用一个循环,逐个比较字符串的第一个字符和最后一个字符、第二个字符和倒数第二个字符,以此类推。如果有任何一个字符不匹配,就将`flag`标志设置为1,程序就输出`no`。如果所有字符都匹配,`flag`标志保持为0,程序输出`yes`。
阅读全文