1003. 我要通过!(20)

来源:互联网 发布:appscan 数据库 编辑:程序博客网 时间:2024/06/07 15:44

题目来源:1003

思路来源:@IamOliverLew

思路详述:

首先看题目要求

得到“答案正确”的条件是:

  1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;
  2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;(备注:前后两个X应该是完全相同的)
  3. 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a, b, c 均或者是空字符串,或者是仅由字母 A 组成的字符串。

条件3的基础是条件1,2;条件2的基础是条件1
一,字符串中有除P,A,T外的字母,那么结果一定是“NO”

二,以下三个条件必须同时满足,才能看下一条,否则“NO”
1,字母P和字母T均只允许出现一次而且必须出现一次
2,并且顺序是P在前T在后
3,字母P与T之前至少有一个A

三,满足上述要求的话,就可以发现正确字符串应该形如“xxPxxTxx”,这中间的“xx”代表数目不等的A。而这三个部分中A的数量需要满足一定的关系,这一点从条件3可以得出。假定P前面,PT之间,T之后字段中A的数目分别为a/b/c。满足的关系为:a*b=c

3

这里写图片描述

作图工具:PressOn.com

原创粉丝点击