pat(basic level) 1003
2014-04-15 23:37
148 查看
题目:http://pat.zju.edu.cn/contests/pat-b-practise/1003
题目大意:只能出现P ,A, T字符,
如果形如 --PAT--则P前面的A和T后面的T的个数相同
如果形如 aPbTc则P前面A的个数a ,PT之间的A的个数b和T后面的A的个数c 满足关系:a*b=c
另外要注意P一定要在T的前面
下面写的代码很粗糙 有时间在优化一下
总结:
主函数用int main()
for(;;i++)在每次循环末尾改变i后与条件比较 ,注意跳出循环后i的的值
另外做题时要先分析清楚逻辑关系,不然容易逻辑混乱并且很浪费时间
题目大意:只能出现P ,A, T字符,
如果形如 --PAT--则P前面的A和T后面的T的个数相同
如果形如 aPbTc则P前面A的个数a ,PT之间的A的个数b和T后面的A的个数c 满足关系:a*b=c
另外要注意P一定要在T的前面
下面写的代码很粗糙 有时间在优化一下
#include<iostream> using namespace std; int main ()////不能用void main()? { int n,i,f_p,f_t; char a[104]; while(cin>>n) { while(n) { n--; cin>>a; int flag1[4]={0},flag3=0;//每次循环初始化 int flag2[4]={0};f_p=f_t=0; // cout<<a<<endl;//////// for(i=0;a[i]!='\0';i++)//for 是i++还是++i?; { if(a[i]=='P') { flag1[1]=1,flag2[1]++;f_p=i; if(i-flag2[2]!=0){flag2[0]=-1;break;} } if(a[i]=='A') flag1[2]=1,flag2[2]++; if(a[i]=='T') { flag1[3]=1,flag2[3]++;f_t=i; if(i-flag2[1]-flag2[2]!=0){flag2[0]=-1;break;} } }//if(f_p*f_t!=i-f_t) flag3=-1; if(f_t-f_p==2) { if(f_p!=i-f_t-1) flag3=-1; } if(f_t-f_p>2) { if(f_p*(f_t-f_p-1)!=i-f_t-1) flag3=-1; } if(f_t<f_p||f_t-f_p==1) flag3=-1; if(flag2[1]!=1||flag2[3]!=1){flag2[0]=-1;} if(flag2[0]==-1||flag1[0]==-1||flag3==-1) cout<<"NO"<<endl; else cout<<"YES"<<endl; } } return 0; }
总结:
主函数用int main()
for(;;i++)在每次循环末尾改变i后与条件比较 ,注意跳出循环后i的的值
另外做题时要先分析清楚逻辑关系,不然容易逻辑混乱并且很浪费时间
相关文章推荐
- PAT Basic Level 1003:我要通过!
- PAT (Basic Level) Practise (中文)1003. 我要通过!(20)
- PAT乙级真题及训练集 PAT (Basic Level) Practise (中文)1003. 我要通过!
- PAT乙级(Basic Level)真题-1003 数素数 (20)
- PAT (Basic Level) Practise (中文)1003. 我要通过!(20)
- PAT 1003 我要通过! (Basic Level)
- PAT (Basic Level) Practise (中文)- 1003. 我要通过!(20)
- PAT BASIC LEVEL 1003. 我要通过!(20)
- PAT (Basic Level) Practise (中文) 1003.我要通过
- PAT (Basic Level) Practise (中文)1003. 我要通过!(20) C语言
- PAT(Basic Level)_1003_我要通过!
- PAT (Basic Level)1003.我要通过
- 浙大 pat Basic Level 1003
- PAT (Basic Level) Practise 1003. 我要通过!
- PAT (Basic Level) Practise (中文) 1003.我要通过!(20)
- Pat(Basic Level)Practice--1003(我要通过)
- PAT(basic level) 1003 我要通过
- PAT(Basic Level)1003 我要通过!
- PAT (Basic Level) Practise (中文)1003. 我要通过!(20)
- PAT (Basic Level) Practise (中文)1003. 我要通过!(20)