Q - 回文串判定
Description
输入一串字符(长度小于100),判断该串字符是否是回文串(正序读与逆序读内容相同)。
Input
输入一串字符(长度小于100)。
Output
若该串字符是回文串输出“yes",否则输出”no“。
Input
asdfgfdsa
Output
yes
#include <iostream>
#include <bits/stdc++.h>
#include <string.h>
using namespace std;
int f(char *a)
{
int len=strlen(a);
char *p=a,*q=a+len-1;
while(p<q)//p为a的首地址,q为a的尾地址
{
if(*q==' ')//指针q向后移动,如果遇到空格继续加1;
{
q--;
continue;
}
if(*p==' ')//指针p向前移动,如果遇到空格继续加1;
{
p++;
continue;
}
if(*q==*p)//如果两个指针代表的字符相等,则向中间同时移动;
{
p++;
q--;
}
else
return 0;
}
return 1;
}
int main()
{
char a[111000];
gets(a);
if(f(a))
printf("YES\n");
else
printf("NO\n");
return 0;
}