pat 乙级 1003 我要通过!(20)
来源:互联网 发布:软件著作权代码格式 编辑:程序博客网 时间:2024/05/17 16:15
// 思路:注意有规律,p之前A的个数x乘以p与t之间A的个数y等于t之后A的个数z,即x*y=z,即可迎刃而解 。
// 分析:
// 其实 题目的意思是
// PAT p前面有0个A,pt之间有1个A,T 后面有0个A, 0*1=0 正确
// PAAT p前面有0个A,pt之间有2个A,T 后面有0个A, 0*2=0 正确
// AAPATAA p前面有2个A,pt之间有1个A,T 后面有2个A, 2*1=2 正确
// AAPAATAAAA p前面有2个A,pt之间有2个A,T 后面有2个A, 2*2=4 正确
了解了这个思路 解题就有出发点了
#include<cstdio> #include<cstring>int main(){ int n; scanf("%d",&n); while(n--){ char str[110]; int np=0,nt=0,other=0,lp,lt; scanf("%s",str); int len=strlen(str); for(int i=0;i<len;i++){ //记录P,T和其他字母的个数以及P和T的位置 if(str[i]=='P'){ np++; lp=i; }else if(str[i]=='T'){ nt++; lt=i; }else if(str[i]!='A') other++; } if((np!=1)||(nt!=1)||(other!=0)||(lt-lp<=1)){//P和T的个数必须为一,没有其他字母,P和T中间至少有一个A printf("NO\n"); continue; } int x=lp,y=lt-lp-1,z=len-lt-1; if(x*y==z) printf("YES\n"); else printf("NO\n"); } return 0;}
阅读全文
0 0
- PAT乙级1003:我要通过!(20)
- pat 乙级 1003 我要通过!(20)
- PAT 乙级-1003 我要通过!
- PAT 乙级1003 我要通过
- PAT-乙级-1003. 我要通过!(20)
- 1003. 我要通过!(20) PAT乙级
- 1003. 我要通过!(20)-PAT乙级
- PAT乙级 1003. 我要通过!(20)
- PAT乙级1003. 我要通过!(20)
- PAT乙级 1003. 我要通过!(20)
- [PAT乙级]1003. 我要通过!(20)
- 1003. 我要通过!(20)--PAT乙级
- PAT乙级1003. 我要通过!(20)
- PAT乙级 1003. 我要通过!(20)
- PAT乙级—1003. 我要通过!(20)-native
- 1003. 我要通过!(20)-浙大PAT乙级真题
- 【PAT】(乙级)1003. 我要通过!(20)
- PAT 乙级 1003. 我要通过!(20) Java版
- 解决centos不能sudo -i的问题
- 设计模式(14)--Command(命令模式)--行为型
- HDU6188 | 2017广西邀请赛 Duizi and Shunzi (贪心)
- 最短路径—Dijkstra算法和Floyd算法
- 机器学习、数据挖掘方面好书、网站推荐
- pat 乙级 1003 我要通过!(20)
- 各种JSON的maven引用
- Android O / Android 8.0 新特性及开发指南
- matlab2c使用c++实现matlab函数系列教程-find函数
- 【数据结构】数据结构与算法分析第一章部分题目
- div+css网页标准布局实例
- JSDOM编程艺术-笔记-ch5 平稳退化&分离JS(BY 弹窗实例)
- 导航配置-movebase参数详解(持续更新中)
- 虚拟币交易平台对接钱包是使用 Merkle Tree端口