注意判断条件,我原本意为那个小写字母是 用户输入必须要做的......(っ °Д °;)っ
题目描述
试写一个算法,识别字符序列是否为形如‘子序列1&子序列2’模式的字符序列,其中子序列2是子序列1的逆序列,0<子序列字符串长度<1000,且都为小写字母。输出YES或者NO。
输入格式
一行字符序列
输出格式
YES或NO
样例输入
hello&ollhe
样例输出
NO
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int find(char*);
int main(){
char s[2500];
while(gets(s)!=NULL){
int pos=find(s);
if(pos==0||pos!=(strlen(s)-1-pos)){//注意判断条件 第一个字符为&或者&前后字符不等或者前后不全为小写字母输出为NO
printf("NO\n");
continue;
}
int flag=1;
for(int i=0,j=strlen(s)-1;i<pos;i++,j--){
if(s[i]==s[j]&&s[i]>='a'&&s[i]<='z'&&s[j]>='a'&&s[j]<='z');
else{
printf("NO\n");
flag=0;
break;
}
}
if(flag)
printf("YES\n");
}
}
int find(char* p){
for(int i=0;i<strlen(p);i++)
if(p[i]=='&')
return i;
}