题目描述 Description
所谓的回文,就是一个句子从左到右读和从右到左读起来是一模一样的,如汉语中的“雾锁山头山锁雾;天连水尾水连天”。在英文当中也有这样的一种句式,一个英文单词相当于一个汉字,现给出几串英文,判断每个字符串是否不是回文单词句式,如果不是,则输出”Yes”,如果是,则输出”No”。 如abc def xyz def abc 反过来依然是: abc def xyz def abc 则该句子就是回文单词句式。
输入描述 Input Description
输入为n+1行,第一行为字符串的个数n,接下来为需要判断的字符串句子,长度不超过1000,每个单词之间用单个空格隔开,且句子首尾没有空格。
输出描述 Output Description
输出为n行,若该句子不是回文单词句式,输出:“Yes”;否则,输出“No”
样例输入 Sample Input
2
abc def xyz def abc
ac bc cb ac
样例输出 Sample Output
No
Yes
#include<iostream>
#include<cstdio>
using namespace std;
string s,c[1005];
int n,st,cnt;
bool Judge(){
int i=1,j=cnt;
while(i<j){
if(c[i]!=c[j]){
return false;
}
i++;
j--;
}
return true;
}
int main(){
cin>>n;
getchar();
for(int i=1;i<=n;i++){
getline(cin,s);
s=s+" ";
if(s[i]==' '){
c[++cnt]=s.substr(st,i-st);
st=i+1;
}
if(Judge()){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
}
return 0;
}
为什么第二个样例不输出?