题意:

一个长度为 n 的序列 a1, m2, ..., an-1, an,如果 ai = an-i+1, i = 1, 2, ..., n,则称之为“回文序列”。本题对于给定的一个序列,请判断其是否回文序列。有多个测试用例。每个测试用例占两行,第一行是一个正整数 n,表示待测试序列有 n 项。第二行是待测试序列,序列的项以一个空格分隔,但是,如果序列项是字符,则没有分隔的空格。输入直至没有数据为止。对于每个测试用例,输出一行,如果输入序列是回文序列,则输出 YES,否则输出 NO.

解题:C++/Accepted/332k/0ms

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main() {
int n;
while (cin >> n) {
string strr;
getline(cin, strr);
string str;
getline(cin, str);
int num = str.length();
vector<string> vec;
string s;
for (int i = 0;i < num;i++)//将字符串按空格分割
{
if (str[i]== ' ')//遇到空格,说明上一个字已经完整了,将它放进句子的数组
{
vec.push_back(s);
//while (!s.empty())
//s.pop_back();
s ="";
}
else
s.push_back(str[i]);
}
vec.push_back(s);
bool isin = true; //标记
if (vec.size() == 1)//说明输入没有空格
{
for (int k = 0;k < num/2;k++)
if (str[k] != str[num - 1 - k]) //按第一个和最后一个,第二个和倒数第二个...字符比较,如果存在某一对不同,则标记为假,且退出
{
isin = false;
break;
}
if (isin) //如果标记为真,则说明没有对应不同的字符
cout << "YES" << endl;
else
cout << "NO" << endl;
}
else
{ //这里比较的是相对应位置的字,原理和上面一样
for (int k1 = 0;k1 < vec.size() / 2;k1++)
if (vec[k1] != vec[vec.size() - 1 - k1])
{
isin = false;
break;
}
if (isin) //如果标记为真,则说明没有对应不同的字
cout << "YES" << endl;
else
cout << "NO" << endl;
} }
return 0;
}

ACM解题之回文序列的更多相关文章

  1. ACM解题之在线翻译 Give Me the Number

    Give Me the Number Time Limit: 2 Seconds                                     Memory Limit: 65536 KB  ...

  2. 山东省第四届acm解题报告(部分)

    Rescue The PrincessCrawling in process... Crawling failed   Description Several days ago, a beast ca ...

  3. ACM解题之(ZOJ 1094) Matrix Chain Multiplication

    题目来源: 点击打开链接 题目翻译: 矩阵乘法问题是动态规划的典型例子. 假设你必须评估一个表达式,如A * B * C * D * E,其中A,B,C,D和E是矩阵.由于矩阵乘法是关联的,乘法运算的 ...

  4. ACM解题之(ZOJ 2212) Argus

    题目来源: 点击打开题目 题目翻译: 数据流是实时的,连续的,有序的项目序列.一些例子包括传感器数据,互联网流量,金融代码,在线拍卖以及诸如网络使用日志和电话记录之类的交易日志.同样,对流进行的查询在 ...

  5. ACM解题之(ZOJ 2724)Windows Message Queue

    题目来源: 点击打开链接 题目翻译: 消息队列是windows系统的基本基础.对于每个进程,系统都维护一个消息队列.如果这个过程发生某些事情,例如鼠标点击,文本改变,系统会向队列添加一条消息.同时,如 ...

  6. ACM解题之快速输出杨辉三角形(前68行)

    题意: 本题要求计算并输出杨辉三角形的前 68 行. Time Limit:1000MS Memory Limit:65536K 解题: 为了能在规定时间准确输出杨辉三角形的前68行,这里我用了精准的 ...

  7. ACM解题之素矩阵

    题意: 如果一个矩形的两条边都是素数,则称此矩形为素矩形.本题给出一个素矩形的面积,请计算其两条边的值.有多个测试用例.每个用例占一行,包含一个表示素矩形面积且不超过 108 的正整数.输入直至没有数 ...

  8. [hihocoder #1384] Genius ACM 解题报告(倍增)

    题目链接:http://hihocoder.com/problemset/problem/1384 题目大意: 给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下: 从集合 S 中取出 M ...

  9. wechall.net/stegano 解题心得

    /* 转载请注明出处:http://www.cnblogs.com/Martinium/p/wechall_stegano.html */ 最近迷上了 www.wechall.net 网站,里面都是些 ...

随机推荐

  1. 初识Quartz(一)

    首先需要一个任务: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 package quartz_proj ...

  2. ubuntu16安装docker

    首先确保curl已经安装! 然后执行: curl -sSL https://get.docker.com/|sudo sh 这个是通过脚本的方式安装docker. 运行命令测试 sudo docker ...

  3. PHP 7安装使用体验,升级PHP要谨慎

    一.发挥PHP 7高性能的几个要点 PHP 7相对于之前的PHP版本来说可以说性能有了质的飞跃,但是所谓“好马配好鞍,好车配风帆”,想要发挥PHP 7的性能优势,还需要从以下几个方面做准备:(此部分引 ...

  4. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  5. 做前端(单纯页面和js)遇到的问题辑录(一)

    html标签的name和id的值一样,jQuery在选择的时候会混乱么? 1.超链接<a href="http://www.jb51.net" title="脚本之 ...

  6. ubi实际使用

    ubifs号称性能比yaffs2 好,同时压缩可读写,文件系统image体较小同时可写.1. uboot使能对UBIFS的支持#define CONFIG_CMD_NAND#define CONFIG ...

  7. D - Sigma Function 1~n内有多少个约数和为偶数

    /** 题目:D - Sigma Function 链接:https://vjudge.net/contest/154246#problem/D 题意:求1~n内约数和为偶数的数的个数. 思路:一个数 ...

  8. OC 内存管理-02 ARC 内存管理

    ARC 管理 概念: ARC简单,不用程序员在去管理内存 1.强指针 Strong[] :只要有强指针指向一个对象,那么系统就不会回收该对象 2.弱指针 weak :只要没有强指针指向对象,系统立即回 ...

  9. python 面向对象三大特性(封装 多态 继承)

    今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面 ...

  10. NetCore 中 EFcore的DbFirst和CodeFirst混合 使用注意

    NetCore 最近很火热.笔者想把自己以前的旧项目迁移到NetCore平台. 先用EFcore的DBFirst根据数据库创建实体类,然后加入数据库版本控制功能也就是EFcore的CodeFirst部 ...