pat

python—正则表达式

余生长醉 提交于 2020-02-12 04:08:57
正则表达式: 一种用来提取有用信息的表达式 原子: 原子是正则表达式的基本组成单位,每个正则表达式至少含有一个原子。 原子主要有以下几种类型: a:普通字符 b:非打印字符 c:通用字符 d:原子表 对应模块 re #普通字符 作为原子 string = "dfsffsfsg" pat = "ffs" rs = re . search ( pat , string ) print ( rs ) # 结果(<_sre.SRE_Match object; span=(3, 6), match='ffs'>) # 非打印字符作为原子(\n,\t等) string = '''sfrgagr fa''' #'''换行,若是"则需加/n pat = "\n" rs = re . search ( pat , string ) print ( rs ) #通用字符 作为原子 ''' 常见通用字符 \w 字母,数字,下划线 \W 除去字母,数字,下划线... \d 十进制数字 \D 除十进制数字 \s 空白字符 \S 除空白字符 ''' string = "dfsff12323242sfsg" pat = "\d\d\d" #匹配三位十进制数字 rs = re . search ( pat , string ) print ( rs ) #结果 <_sre.SRE_Match object;

PAT A1075 PAT Judge (25分)

北城余情 提交于 2020-02-11 16:56:44
The ranklist of PAT is generated from the status list, which shows the scores of the submissions. This time you are supposed to generate the ranklist for PAT. Input Specification: Each input file contains one test case. For each case, the first line contains 3 positive integers, N (≤10 ​4 ), the total number of users, K(≤5), the total number of problems, and M (≤10 ​5 ), the total number of submissions. It is then assumed that the user id’s are 5-digit numbers from 00001 to N, and the problem id’s are from 1 to K. The next line contains K positive integers p[i] (i=1, …, K), where p[i]

用Git从本地上传文件到GitHub

十年热恋 提交于 2020-02-10 19:26:46
这几天忙于抢救崩掉的博客,没空更新GitHub上PAT的代码,手动一个个传太慢了,所以我去偷学了一下给Git传文件到GitHub,非教学教程没有图文,有几个前提 你得有github账号,没有就去注册吧https://github.com/ 还需要git,没有就去安装https://git-for-windows.github.io/ 进入Github首页,点击New repository新建一个项目 填写相应信息后 点击Clone or dowload会出现一个地址,copy这个地址备用 Repository name: 仓库名称 Description(可选): 仓库描述介绍 Public, Private : 仓库权限(公开共享,私有或指定合作者) Initialize this repository with a README: 添加一个README.md gitignore: 不需要进行版本管理的仓库类型,对应生成文件.gitignore license: 证书类型,对应生成文件LICENSE 到本地操作了,首先右键你的项目,如果你之前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里我们选择Git Bash Here,进入如下界面,Test_Bluetooth即为我的项目名。 (关键步骤)

PAT B1080 MOOC期终成绩(C++)

主宰稳场 提交于 2020-02-09 10:39:29
PAT甲级目录 | PAT乙级目录 题目描述 B1080 MOOC期终成绩 解题思路 可利用 map 将字符串型的学号转换为整型的序号,方便查找。输入全部成绩后,遍历每个学生同时计算最终成绩,然后将成绩合格的人加入结果数组,最后对结果数组进行排序。 对于将输出的合格的学生,如果某次考试成绩不存在,那只可能是期中考试。如果其他考试有缺考则不可能合格。所以只要将期中考成绩默认为 -1,最后可直接输出无需另外判断。 易错点 最终成绩要四舍五入 也许陌生的知识点 if(nametoi.find(id) == nametoi.end()){ nametoi[id] = cnt++;} 可利用 map 将字符串类型的 id 转换成整数序号,方便处理 需要的头文件: map sort(S, S + n, cmp); 排序函数,实现 [first, last) 范围内的排序,可以自定义排序策略 cmp 函数 不带 cmp 参数的 sort 函数实现从小到大排序 所需头文件: algorithm vector<int> ans; 实现变长数组,元素类型可任意指定 ans.push_back(num[i]) 往变长数组末尾中添加一个元素 ans.pop_back() 删除变长数组中最后一个元素 需要的头文件: vector 代码示例:

PAT 1003 我要通过

旧时模样 提交于 2020-02-07 15:34:38
PAT 1003 我要通过 题目: 答案正确 ”是自动判题系统给出的最令人欢喜的回复。本题属于 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

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

若如初见. 提交于 2020-02-07 02:47:40
PAT乙级——1003 我要通过! (20分) “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。 得到“答案正确”的条件是: 1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符; 2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串; 3.如果 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 分析: 根据题意,得到“答案正确”的条件有三条:

PAT甲级 1025 PAT Ranking (25分)

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-07 00:48:46
1025 PAT Ranking (25分) 题目链接: PAT A 1025 题目大意:给出每个考场的所有考生号以及考生成绩,要求将他们归并到一起排序后输出,同时还要输出考生所在的考场号(编号由1到n)以及考生在那个考场的排名,如果考生成绩相同,则按考生号升序输出~ 思路分析:在排序题中算是非常简单的了,只是根据成绩和考生号排序,简单直观。而考场编号和考生在考场的排名则存储到map容器里,一个考生号对应一个排名,最后直接输出即可。需要注意的是,如果考生成绩相同,那么他们的名次应该是一样的,同时后面考生的名次要依次顺延。 AC代码: # include <iostream> # include <algorithm> # include <map> # include <vector> using namespace std ; struct stu { string id ; //考生号 int score ; //成绩 } ; bool cmp ( stu a , stu b ) { //排序函数 if ( a . score != b . score ) //成绩不同则按成绩排序 return a . score > b . score ; else //成绩相同则按考生号升序的方式排 return a . id < b . id ; } int main ( ) { int

PAT A1075 PAT Judge

允我心安 提交于 2020-02-06 17:52:19
我的思路: 先初始化一个二维数组s[10010][6] 为 -2,用于存放每个人每道题的分数(则没提交的分数为-2,未通过编译的为-1)。然后读入数据到结构体数组中,对每个读入的分数进行判断,若存在大于等于0的分数,则令flag为true,并加到总分中;若分数等于满分,则令perfectNum++。然后排序并输出即可。 问题: 实际上本题考生的id是从1开始连续的,于是考生的id即可认为是结构体数组的下标,就无需另开数组了。 # include <cstdio> # include <algorithm> using namespace std ; int s [ 10010 ] [ 6 ] ; int perfect [ 6 ] ; struct student { int id ; int score [ 6 ] ; int TotalScore = 0 ; int PerfectScoreNum = 0 ; bool flag = 0 ; int rank ; } stu [ 10010 ] ; bool cmp ( student s1 , student s2 ) { if ( s1 . TotalScore != s2 . TotalScore ) return s1 . TotalScore > s2 . TotalScore ; else if ( s1 .

PAT B1040 有几个PAT

寵の児 提交于 2020-02-06 02:03:29
觉得题目还不错哦,看答案第一个想到KMP,可能是我练习太少,孤陋寡闻了`;.’ /* PAT B1040 有几个PAT (25 分) 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T);第二个 PAT 是第 3 位§,第 4 位(A),第 6 位(T)。 现给定字符串,问一共可以形成多少个 PAT? 输入格式: 输入只有一行,包含一个字符串,长度不超过1,只包含 P、A、T 三种字母。 输出格式: 在一行中输出给定字符串中包含多少个 PAT。由于结果可能比较大,只输出对 1000000007 取余数的结果。 输入样例: APPAPT 输出样例: 2 */ #include< cstdio> #include< cstring> using namespace std; const int maxn=100010; const int MOD=1000000007; int numLeftP[]={0}; int main(){ char str[maxn]; gets(str); int len=strlen(str); for(int i=0;i<len;i++){ if(i!=0) numLeftP[i]=numLeftP[i-1];//注意此处处理0号元素的手法 if(str[i] ‘P’) numLeftP

适合初步练习PAT乙级——(1057) 数零壹

五迷三道 提交于 2020-02-05 23:32:53
适合初步练习PAT乙级——(1057) 数零壹 给定一串长度不超过 10​5的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。 输入格式: 输入在一行中给出长度不超过 10 ​5 ​​、以回车结束的字符串。 输出格式: 在一行中先后输出 0 的个数和 1 的个数,其间以空格分隔。 输入样例: PAT (Basic) 输出样例: 3 4 # include <iostream> # include <cctype> # include <string> using namespace std ; int main ( ) { string s ; getline ( cin , s ) ; int n = 0 ; for ( int i = 0 ; i < s . length ( ) ; i ++ ) { if ( isalpha ( s [ i ] ) ) { s [ i ] = toupper ( s [ i ] ) ; n + = ( s [ i ] - 'A' + 1 ) ; } } int