pat 1093(patrol是什么车)

网友投稿 207 2022-09-20


pat 1093(patrol是什么车)

1、题目链接 https://patest.cn/contests/pat-a-practise/1093 2、题意分析 (1)题意:分析一个字符串中拥有多少个不重复的PAT (2)分析:有两种思路。 1)我们可以从头到尾依次遍历一个字符串,如果当前字符等于P,则再从当前位置遍历,找出字符A,然后再在字符A的基础上找出字符T,累计这样的次数,最后取余,得到最后的一个答案。 2)同时,我们可以找出这个字符串中每个A前面有多少个P,后面有多少个T。根据排列与组合原理,可知每个字母A可以组成的PAT有sumP*sumT个,然后将这些sumP*sumT累加,然后取余,得到答案。 3、第一种方法代码如下: #include #include /* 1.使用全局变量可以扩大数组范围 */ #define size 100001 int main(){ char string[size];//存储字符串 scanf("%s",string);//输入字符串 int length; length = strlen(string);//求出字符串的长度 //printf("%d",length); int i, j ,k ; int total = 0;//用来表示有多少个pat //遍历 for(i = 0;i #include /* 1.使用全局变量可以扩大数组范围 */ #define size 100001 int main(){ char string[size];//存储字符串 scanf("%s",string);//输入字符串 int length; length = strlen(string);//求出字符串的长度 //printf("%d",length); int i, j ,k ; int total = 0;//用来表示有多少个pat int sumP = 0,sumT = 0;//表示字符A前P 与后T的数目 int array[size][2] ,index = 0; //遍历 for(i = 0;i= 0;i--){ if(string[i] == 'A'){ array[--index][1] = sumT; } if(string[i] == 'T'){ sumT++;//如果为字符P,则加一 } } for(i = 0;i

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:pat 1029(patient)
下一篇:Spring Boot使用GridFS实现文件的上传和下载方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~