问题标题: 酷町堂:1469 回文单词句式

0
0
王翰闻
王翰闻
新手守护
新手守护
题目描述 Description
所谓的回文,就是一个句子从左到右读和从右到左读起来是一模一样的,如汉语中的“雾锁山头山锁雾;天连水尾水连天”。在英文当中也有这样的一种句式,一个英文单词相当于一个汉字,现给出一串英文,判断是否是回文单词句式,如果是,则输出”Yes”,如果不是,则输出”No”。 如
abc def xyz def abc 反过来依然是: abc def xyz def abc 则该句子就是回文单词句式。

输入描述 Input Description
输入为一行,为需要判断的字符串句子,长度不超过1000,每个单词之间用单个空格隔开,且句子收尾没有空格。

输出描述 Output Description
输出为一行,若该句子是回文单词句式,输出:“Yes”;否则,输出“No”

样例输入 Sample Input
abc def xyz def abc

样例输出 Sample Output
Yes

难到爆!!!

王翰闻在2019-04-25 13:29:11追加了内容
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
	string a[1001];
	int t=0,i,j;
	while(cin>>a[i])
	{
		t++;
	}
	if(a[1]==a[t])
	{
		for(i=1;i<=t;i++)
		{
			for(j=1;j<=t;j++)
			{
				if(a[i]==a[t-i])
				{
					break;
				}
			}
		}
		cout<<"Yes";		
	}
	else
	{
		cout<<"No";
	}
 	return 0;
}

60,哪错了?


0
0
0
徐润扬
徐润扬
高级守护
高级守护

  for(int i=1;i<s.size();i++){
        if(s[i]==' '){
            str[top++]=s.substr(front+1,i-front-1);  //截取两个空格之间的部分为一个单词
            front=i;
        }
    }
    int i=0,j=top-1;  //i,j分别表示首、尾字符串的下标
    while(i<j){
        if(str[i]!=str[j]){
            cout<<"No";
            return 0;
        }
        i++;
        j--;
    }
    cout<<"Yes";

核心

0
0
0
王文博
王文博
缔造者之神
缔造者之神

判断回文:

int i=1,j=cnt;
    while(i<j)
    {
        if(t[i]!=t[j])
        {
            f=false;
            break;
        }
        i++;
        j--;
    }

望采纳!

0
我要回答