这次终于觉得智商不够用了,特么的。

总结给你的经验,对于这样字符串的题目,经常会出现一种叫做递归定义的东西。

还有一种叫做,相同的字母表示相同的字符串。

这道题目一共有三个条件。

1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;
2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。

其中,最重要的是第三个定义。

1、第一次读这条定义,那么需要满足第二条定义,那么b只可能是A,a和c必定相等,所以你能得到只有一种XPAATXX正确的错觉。

2、但是重点来了,XPAATXX的形式正确了,那么它又可以代入第三个条件了。

3、也就是说中间再加一个A,变成XPAAATXXX,这样的形式也就正确了。

这就是传说的递归定义。

其实树本身也是一种递归的定义。这里就不多说了。其实和这个的思想是一样的。

这道题目坑就坑在这里了。所以对于字符串的题目一定要小心这一点,很容易栽。

下面的代码仅仅是为了凑字数哦,写的超级烂,因为题目的意思经过一波三折,所以改动的太多,最后就成这副面目全非的样子了,好同学看到这里就可以了。

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<string.h> using namespace std; int main()
{
char ch[];
int n,i,flag;//flag:0最前面,1P之后,2A之后,3T之后
int aN = ;//中间A的个数
int aNU = ;//前面A的个数
int aNUM = ;//后面A的个数
int len;
scanf("%d\n",&n);
while (n--)
{
flag=;
aN =;
aNU=;
aNUM=;
gets(ch);
len = strlen(ch);
for (i = ; i < len; i++)
{
if(flag == && ch[i] == 'P')
{
flag = ;
continue;
}
else if(flag == && ch[i] == 'A')
{
aNU++;
continue;
}
else if(flag == && ch[i] == 'A')
{
aN++;
flag = ;
continue;
}
else if(flag == && ch[i] != 'A')
{
break;
}
else if(flag == && ch[i] == 'T')
{
flag = ;
continue;
}
else if(flag == && ch[i] == 'A')
{
aN++;
continue;
}
else if(flag == && ch[i] != 'A')
{
flag = ;
break;
}
else if(flag == && ch[i] == 'A')
{
aNUM++;
continue;
}
break;
}
if(flag == && aN == && aNU != aNUM)
cout<<"NO"<<endl;
else if(flag == && aN == && aNU == aNUM)
cout<<"YES"<<endl;
else if(flag == && aN*aNU == aNUM)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
return ;
}

PAT乙1003的更多相关文章

  1. PAT甲级1003. Emergency

    PAT甲级1003. Emergency 题意: 作为一个城市的紧急救援队长,你将得到一个你所在国家的特别地图.该地图显示了几条分散的城市,连接着一些道路.每个城市的救援队数量和任何一对城市之间的每条 ...

  2. PAT 乙级 1003

    题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:“如果 aPbTc 是 ...

  3. 图论 - PAT甲级 1003 Emergency C++

    PAT甲级 1003 Emergency C++ As an emergency rescue team leader of a city, you are given a special map o ...

  4. PAT乙级--1003

    1003. 我要通过!(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "答案正确"是 ...

  5. PAT乙级1003

    1003 我要通过! (20 point(s)) “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”, ...

  6. [C++]PAT乙级1003. 我要通过!(17/20)

    /* 1003. 我要通过!(20) “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错 ...

  7. PAT 乙级 1003 我要通过!(20) C++版

    1003. 我要通过!(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue “答案正确”是自动判题系统给出的最 ...

  8. 【PAT】1003. 我要通过!(20)

    1003. 我要通过!(20) “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. ...

  9. PAT Basic 1003

    1003 我要通过! “答案正确”是自动判题系统给出的最令人欢喜的回复.本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”. 得到“答 ...

随机推荐

  1. 使用block函数的基本形式

    以前从未接触过block函数. 如果在.h头文件中定义的形式如下的话: @property (nonatomic, copy) void(^fontValueChangedBlock)(void); ...

  2. [转载]The Island Castaway mac版解锁

    http://blog.sina.com.cn/s/blog_506b3ac90101ke0e.html 1.首先,去安装一个The Island - Castaway™ mac free版,然后打开 ...

  3. events.js:72 throw er; // Unhandled 'error' event

    http://stackoverflow.com/questions/24525253/events-js72-throw-er-unhandled-error-event 出现了一个上述的错误. e ...

  4. iOS中的项目新特性页面的处理

    一般项目中都会出现新特性页面,比如第一次使用应用的时候,或者在应用设置里查看新特性的时候会出现. 这里,选择新建一个专门处理项目新特性的控制器,来完成功能. 首先是 NewFeaturesViewCo ...

  5. Android 图片显示

    一.Android手机显示图片 若R.G.B每种颜色使用一个字节(8bit)表示,每幅图像可以有1670万种颜色:若R.G.B每种颜色使用两个字节(16bit)表示,每幅图像可以有10的12次方种颜色 ...

  6. Android:OpenFire 相关API (持续更新)

    基于XMPP协议的聊天服务器.最近会一直更新相关的API. 需要的软件:OpenFire(服务器),Spark(客户端--测试用),Asmack(Jar包) 1.连接服务器的代码 private vo ...

  7. 关于const *和 * const

    int main() { ; ; int const *p = &i; p = &j; *p = ; //错误,*p的值被const修饰,为只读变量,不可更改 int * const ...

  8. C相关的图书(链接不可用)

    Visual C++视频技术方案宝典.pdf: http://www.t00y.com/file/17628500 Windows 图形编程.pdf: http://www.t00y.com/file ...

  9. PHP关于表单提交 后 post get分页

    PHP关于表单提交后分页函数的那点事--POST表单分页实现   phpfunctionclass加密inputjavascript     说到分页,其实你在Google一搜一大把.大部是通过GET ...

  10. 在线协作沟通工具DesignBoard帮助设计团队更有效地进行沟通与版本管理

    设计稿呈现缺乏整体性.远程沟通效率低.多版本管理混乱,这可能是很多创业团队都面临的问题,并且这些问题都将直接影响到产品开发进度.国内创业团队彩程设计也曾面临同样的问题,后来他们在做某个新项目时尝试把设 ...