所谓的回文,指的就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。 我希望检查一下某个字符串是不是个回文串,但是我又懒得检查那么多,所以我打算只让你检查其中的一个位置就行了。 给你一个数字,代表数组的下标。请你帮我检查字符串是否有这个位置,如果有这个位置,那么和这个位置相对的位置两个字符是否相同。 输入描述 第一行输入一个数字n,代表需要查询的位置 第二行输入一个字符串S (0<S.length<1000) 输出描述 查不到该位置或者字符不相同则输出No sir 如果存在且两个位置字符相当则输出Yes sir
时间: 2024-02-13 20:00:01 浏览: 125
以下是使用C语言实现上述功能的代码:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char s[], int index) {
int len = strlen(s);
if (index < 0 || index >= len) { // 如果数组下标越界,则返回No sir
return 0;
}
int oppositeIndex = len - 1 - index;
if (oppositeIndex < 0 || oppositeIndex >= len) { // 如果数组下标越界,则返回No sir
return 0;
}
if (s[index] != s[oppositeIndex]) { // 如果相对位置两个字符不相同,则返回No sir
return 0;
}
return 1;
}
int main() {
int index;
char s[1000];
scanf("%d %s", &index, s);
if (isPalindrome(s, index)) {
printf("Yes sir\n");
} else {
printf("No sir\n");
}
return 0;
}
```
在这个例子中,我们定义了一个`isPalindrome`函数,它的输入参数为字符串`s`和需要查询的位置`index`,返回值为整型。如果字符串`s`的第`index`个字符和相对位置的字符相同,返回1,否则返回0。在`main`函数中,我们首先从输入中读取需要查询的位置`index`和字符串`s`,然后调用`isPalindrome`函数进行检查,最后根据返回值输出相应的结果。
阅读全文