pat

libdvbpsi源码分析(四)PAT表解析/重建

孤街浪徒 提交于 2020-04-17 02:47:25
【推荐阅读】微服务还能火多久?>>> 由上一章 libdvbpsi源码分析(三)PSI decocder详细分析 ,我们知道了psi decoder的构建过程。本章将延续上文 以PAT表详细解析为例,由点及面的概述libdvbpsi的实现。 下面详细分析pat decoder解码器的创建过程: a、首先通过dvbpsi_new创建一个通用的decoder,但还未真正的实例化为pat decoder,即pat decoder还未初始化。 dvbpsi_t *dvbpsi_new(dvbpsi_message_cb callback, enum dvbpsi_msg_level level) { dvbpsi_t *p_dvbpsi = calloc(1, sizeof(dvbpsi_t)); if (p_dvbpsi == NULL) return NULL; p_dvbpsi->p_decoder = NULL; //赋值为NULL,pat decoder还未初始化 p_dvbpsi->pf_message = callback; p_dvbpsi->i_msg_level = level; return p_dvbpsi; } b、初始化PAT decoder 并且绑定pat表的解析handle动作。其中dvbpsi_pat_attach中dvbpsi_decoder

字符串string中指定子字符串pattern的个数

独自空忆成欢 提交于 2020-03-07 08:36:45
1 ;;;name:BF-Str-PatternNum 2 ;;;desc:字符串string中指定子字符串pattern的个数 3 ;;;arg:pattern:要统计其个数的子串 4 ;;;arg:string:字符串,在其中搜索pattern并计数 5 ;;;return:字符串string中,子串pattern的个数 6 ;;;example:(BF-Str-PatternNum "l" "helloworld") 7 (defun BF-Str-PatternNum(pattern string / k) 8 (setq k 0) 9 (while (vl-string-search pattern string) 10 (setq k (1+ k)) 11 (setq string (vl-string-subst "" pattern string)) 12 ) 13 k 14 ) 来源: https://www.cnblogs.com/insipid1860/p/12432473.html

PAT 1040 有几个PAT (JAVA)

僤鯓⒐⒋嵵緔 提交于 2020-03-07 03:05:00
字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。 现给定字符串,问一共可以形成多少个 PAT? 输入格式: 输入只有一行,包含一个字符串,长度不超过10 5 ,只包含 P、A、T 三种字母。 输出格式: 在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。 输入样例: APPAPT 输出样例: 2 我的思路: 数学题,对每个A,统计前面的P数量和后面的T数量。 import java . util . * ; import java . io . * ; public class Main { public static void main ( String [ ] args ) throws IOException { BufferedReader bf = new BufferedReader ( new InputStreamReader ( System . in ) ) ; String str = bf . readLine ( ) ; int cntT = 0 , cntP = 0 , res = 0 ; for ( char ch : str . toCharArray

PAT常用STL-vector

喜你入骨 提交于 2020-03-06 18:54:56
vector一般用作变成数组,可以方便地实现PAT中结果最后一个地方不许有空格的要求。 vector常用操作 #include<cstdio> #include<vector>//vector类型头文件 using namespace std;//使用STL容器必须添加此句 int main() { vector<int> a; vector<vector<int> > b; a.push_back(2);//从后面添加元素 printf("%d\n",a[0]);//通过下标访问元素 printf("%d\n",a.size());//获取元素个数 a.pop_back();//从后面删除元素 a.insert(a.begin(),5);//在迭代器指向的位置上添加元素5 a.insert(a.begin(),2); a.insert(a.begin(),4); a.erase(a.begin());//删除a.begin()所指的元素 a.erase(a.begin(),a.end());//删除[a.begin(),a.end())间的元素 return 0; } 输出: 2 1 -------------------------------- Process exited after 0.2462 seconds with return value 0 请按任意键继续. .

PAT乙级-1003 我要通过! (20分)

和自甴很熟 提交于 2020-03-05 01:22:35
题目: 答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串; 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。 现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“答案正确”的。 输入格式: 每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。 输出格式: 每个字符串的检测结果占一行,如果该字符串可以获得“答案正确”,则输出 YES,否则输出 NO。 输入样例: 8 PAT PAAT AAPATAA AAPAATAAAA xPATx PT Whatever APAAATAA 输出样例: YES YES YES YES NO NO NO NO 我的代码: # include <iostream> # include <cstdio> #

pat a 1075

别说谁变了你拦得住时间么 提交于 2020-03-02 08:00:03
这道题最好还是参考柳神的,我其实没有完全读懂题意就开始做了,所以在数据处理方面比较乱。 这道题我在第一次做的时候没有完全对,显示一个答案错误和一个段错误,第二次做的时候反而错的更多了,不过经过修改终于改对了,说一下我觉得的坑点吧。 1.这个题目意思虽然好懂,但其实我读完了之后以为懂了,但其实理解的是错的。对于这道题来说,只有那种全都没提交或者编译失败的人才不会被显示,那么也就是还有一种情况,有人全都通过了编译,可是呢,他一分也没有得到(感觉好惨QAQ),这样的人也是要显示出来的,也就是0,0,0,0。 2.要小心分数被覆盖了,比如我写了一个很棒的代码,可是自己不满意,还要写一遍,结果第二次要么没通过编译,要么分数比第一次还低,主要注意没有通过编译的情况。 3.第三点是我自己的情况了,我第二次写完提交提示的是段错误,但是我检查了一遍,觉得好像不会越界呀,但其实是我在写for循环时参数填写错了,这一点其实可以好好利用一下pat自己的编译器,毕竟自己的dev告诉我你的代码很ok呀,可是pat的编译器告诉我,哎呀好像有几个warning,我就是靠着这个warning找到了问题所在,第一次发现还可以这样~ # include <iostream> # include <vector> # include <algorithm> # include <cstring> using

PAT basic 1085 PAT单位排行 (25分)

对着背影说爱祢 提交于 2020-02-26 23:39:46
一、题目描述 每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。 输入格式: 输入第一行给出一个正整数 N(≤10​5​​ ),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息: 准考证号 得分 学校 其中准考证号是由 6 个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;得分是 [0, 100] 区间内的整数;学校是由不超过 6 个英文字母组成的单位码(大小写无关)。注意:题目保证每个考生的准考证号是不同的。 输出格式: 首先在一行中输出单位个数。随后按以下格式非降序输出单位的排行榜: 排名 学校 加权总分 考生人数 其中排名是该单位的排名(从 1 开始);学校是全部按小写字母输出的单位码;加权总分定义为乙级总分/1.5 + 甲级总分 + 顶级总分*1.5的整数部分;考生人数是该属于单位的考生的总人数。 学校首先按加权总分排行。如有并列,则应对应相同的排名,并按考生人数升序输出。如果仍然并列,则按单位码的字典序输出。 输入样例: 10 A57908 85 Au B57908 54 LanX A37487 60 au T28374 67 CMU T32486 24 hypu A66734 92 cmu B76378 71 AU A47780 45 lanx A72809 100 pku A03274 45

PAT 乙级 1003 我要通过! (20分)

允我心安 提交于 2020-02-26 13:41:45
“ 答案正确 ”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“ 答案正确 ”大派送 —— 只要读入的字符串满足下列条件,系统就输出“ 答案正确 ”,否则输出“ 答案错误 ”。 得到“ 答案正确 ”的条件是: 字符串中必须仅有 P 、 A 、 T 这三种字符,不可以包含其它字符; 任意形如 xPATx 的字符串都可以获得“ 答案正确 ”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串; 如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a 、 b 、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。 现在就请你为 PAT 写一个自动裁判程序,判定哪些字符串是可以获得“ 答案正确 ”的。 输入格式: 每个测试输入包含 1 个测试用例。第 1 行给出一个正整数 n (<10),是需要检测的字符串个数。接下来每个字符串占一行,字符串长度不超过 100,且不包含空格。 输出格式: 每个字符串的检测结果占一行,如果该字符串可以获得“ 答案正确 ”,则输出 YES ,否则输出 NO 。 输入样例: 8 PAT PAAT AAPATAA AAPAATAAAA xPATx PT Whatever APAAATAA 输出样例: YES YES YES YES NO NO NO NO 分析:这个题目有点迷惑性,其实也并不难,我们拆开来看: xPATx

PAT A1093 Count PAT's

蓝咒 提交于 2020-02-24 21:16:43
前言:考研成绩出分。。。又又玩儿几天 不行了,要好好学习,加油~ 复旦的研究生 冲啊! 题目难度:两颗星 题目大意:给定PAT三个字母的字符串,问题目中符合PAT顺序的有多少? 题目坑点:说句实话 是看了算法笔记的提示 才知道利用A作为中间 然后根据两边的P和T的个数进行递推。想法比较受用。 代码如下: #include < iostream > #include < stdlib . h > #include < queue > #include < stack > #include < algorithm > #include < map > #include < cstring > using namespace std ; typedef long long LL ; char str [ 100010 ] ; int p [ 100010 ] , t [ 100010 ] ; int main ( ) { memset ( p , 0 , sizeof ( int ) * 100010 ) ; memset ( t , 0 , sizeof ( int ) * 100010 ) ; cin >> str ; int count = 0 ; for ( int i = 0 ; str [ i ] != '\0' ; i ++ ) { if ( str [ i ] == 'P

【PAT】1035. Password (20)

帅比萌擦擦* 提交于 2020-02-20 01:01:23
题目: http://pat.zju.edu.cn/contests/pat-a-practise/1035 分析: 简单题。直接搜索,然后替换,不会超时,但是应该有更好的办法。 题目描述: To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L in lowercase), or 0 (zero) from O (o in uppercase). One solution is to replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. Now it is your job to write a program to check the accounts generated by the judge, and to help the juge modify the confusing passwords. Input Specification: Each input file