怎么做?在线等
  • 板块学术版
  • 楼主Qutiange
  • 当前回复6
  • 已保存回复6
  • 发布时间2020/9/9 17:14
  • 上次更新2023/11/5 13:30:37
查看原帖
怎么做?在线等
346670
Qutiange楼主2020/9/9 17:14
题目描述 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;
}

为什么第二个样例不输出?

2020/9/9 17:14
加载中...