转跳点:

  这道题可就整死我了,第三个条件我看了好久才看懂。当我看懂第三个条件之后,就感觉自己之前好蠢。唉,不多说,先上题

  样例较长,比较所以可能会有些模糊。题目的要求很明确,符合三个条件,任意一个条件都视为答案正确,然后输出OK。看清楚需求之后,我们来分析一下条件。

条件:

  第一种:只含有P、A、T三个字符,少一个都不行,这个意思就是 这字符串至少是长度为 3 的 PAT。

  第二种:形如“……”PAT“……”形式的字符串,前后“……”的中的字符只能是由A所构成的字符串且长度必须相等,

    也就是形如 APATA, AAPATAA, AAAPATAAA……这样的字符串,也判定为答案正确

  第三种:形如aPbTc的字符串如果符合上述两种,那么 aPAbTac 也为“答案正确”。

 我们得好好分析一下第三个个条件,单独分析第三个条件会发现无论输入是什么都是OK。所以我们应该结合样例分析。

    根据样例里的这三组样例:

       AAPATAA    --YES;

      AAPAATAAAA  --YES;

      APAAATAA   --NO。

  这样我们就可以得出一下规律

  只要P前面的A的个数乘以PT之间的A的个数的积等于T后面的A的个数且字符串中只含有单个P和T就为YES,否则NO。即条件三中符合a*b=c。然后看条件二不难发现:条件二包含在条件三中。知道这些后,就可以通过了。

  最后当然是实现啦:

代码:

 1 #include <stdio.h>
2 #include <string.h>
3 #define LEN 101
4
5 int main()
6 {
7 int cnt_str = 0; //字符串个数
8 scanf("%d", &cnt_str);
9 for (int i = 0; i < cnt_str; i++)
10 {
11 char str[LEN];
12 scanf("%s", str); //读入字符串
13 int cnt_P = 0, cnt_T = 0, isRight = 1;
14 int pos_P = 0, pos_T = 0; //设置P、T的下标
15 for (int i = 0; i < strlen(str); i++)
16 {
17 if (str[i] == 'P')
18 {
19 pos_P = i; //记录P的下标
20 cnt_P++;
21 }
22 else if (str[i] == 'T')
23 {
24 pos_T = i; // 记录T的下标
25 cnt_T++;
26 }
27 else if (str[i] != 'A')
28 { //有其他字符
29 isRight = 0;
30 break;
31 }
32 }
33 if (isRight && cnt_P == 1 && cnt_T == 1)
34 { //如果字符串只有PAT三种字符 且 P、T数量为1
35 int l_A = 0, c_A = 0, r_A = 0; // 声明左、中、右 字符A的数量
36 l_A = pos_P;
37 c_A = pos_T - pos_P - 1;
38 r_A = strlen(str) - pos_T - 1;
39 if (c_A > 0 && l_A * c_A == r_A)
40 { //PT之间有A,且A的数量 左*中 = 右
41 printf("YES\n");
42 continue;
43 }
44 }
45 printf("NO\n");
46 }
47 return 0;
48 }

  PTA不易,诸君共勉!

P1003 我要通过!的更多相关文章

  1. P1003 越野跑【tyvj】

    /*=========================================================== P1003 越野跑 描述 Description 为了能在下一次跑步比赛中有 ...

  2. 洛谷 P1003 铺地毯

    嗯.... 一道比较水的模拟题.. 刚拿到题的时候被它的数据范围吓到了,二维数组不可能开那么大啊,可是一边做发现测试数据太水 ... 先看一下题吧... 题目描述 为了准备一个独特的颁奖典礼,组织者在 ...

  3. (水题)洛谷 - P1003 - 铺地毯

    https://www.luogu.org/problemnew/show/P1003 一开始觉得是用树套树来区间修改单点查询,但是发现空间不够开. 看了题解发现这个是静态的问题,而且只问一个点的结果 ...

  4. P1003 铺地毯(noip 2011)

    洛谷——P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯 ...

  5. luogu p1003

    P1003 题意 经过多个矩形(1e3)覆盖后后某个坐标属于那个矩形(仅仅是一次询问) 大水题,直接的做法,从后向前处理矩形是否覆盖查询的点,若覆盖,则是该矩形编号 题解 int get_num(){ ...

  6. 洛谷P1003 铺地毯 noip2011提高组day1T1

    洛谷P1003 铺地毯 noip2011提高组day1T1 洛谷原题 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n ...

  7. 洛谷P1003 [NOIP2011提高组Day1T1]铺地毯

    P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号 ...

  8. Java实现蓝桥杯-算法提高 P1003

    算法提高 P1003 时间限制:1.0s 内存限制:256.0MB 作为一名网络警察,你的任务是监视电子邮件,看其中是否有一些敏感的关键词.不过,有些狡猾的犯罪嫌疑人会改变某些单词的字母顺序,以逃避检 ...

  9. AC日记——铺地毯 洛谷 P1003(水水水水水~)

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

  10. [NOIP2011] 提高组 洛谷P1003 铺地毯

    题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号从小到大的顺序平行于 ...

随机推荐

  1. nodejs的C++扩展中实现异步回调

    在nodejs的官方网站中有关于C++扩展的详细说明,其中包含了从"hello world"到对象封装的一系列示例.其中的“callback”节是关于回调函数的,美中不足的是,这个 ...

  2. Django 学习之中间件Middleware

    一.中间件介绍 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响 ...

  3. Python - 列表与字符串的相互转换

    1. 列表转换成字符串,用''.join() # 创建一个列表 list1 = ['a','b','c'] # 将列表的元素拼接为字符串 print(''.join(list1)) # 将列表的元素通 ...

  4. 一文解读XaaS (转)

    艾克赛斯???别慌,读完你就知道啦~ 服务和云服务 了解Xaas云服务,不妨从了解服务开始. “服务”在本质上是一种租赁,它对资源的占用方式是“为我所用”而非“为我所有”,对资源的消费模式是按需付费而 ...

  5. 科学计算库(BLAS,LAPACK,MKL,EIGEN)

    函数库接口标准:BLAS (Basic Linear Algebra Subprograms)和LAPACK (Linear Algebra PACKage) 1979年,Netlib首先用Fortr ...

  6. reactor---元数据驱动的表单

    class NameForm extends React.Component {  constructor(props) {    super(props);    this.state = {    ...

  7. Linux-使用之vim出现的问题

    参考来源: https://stackoverflow.com/questions/47667119/ycm-error-the-ycmd-server-shut-down-restart-wit-t ...

  8. 高斯消元几道入门题总结POJ1222&&POJ1681&&POJ1830&&POJ2065&&POJ3185

    最近在搞高斯消元,反正这些题要么是我击败了它们,要么就是这些题把我给击败了.现在高斯消元专题部分还有很多题,先把几道很简单的入门题总结一下吧. 专题:http://acm.hust.edu.cn/vj ...

  9. 「Luogu1402」酒店之王

    传送门 Luogu 解题思路 网络流板子题. 建图细节见代码,也可以参考这道差不多的题 细节注意事项 咕咕咕. 参考代码 #include <algorithm> #include < ...

  10. 简单模拟IOC容器:返回对象并能抛出异常

    本次要求:已知com.zzj.vo包下分别有Tiger.lion.Elephant三个Java源文件,请据此实现以下功能:①.自定义一个名为Component的注解,要求该注解只能用于类且代码运行时该 ...