pat

PAT_A1069#The Black Hole of Numbers

会有一股神秘感。 提交于 2019-11-29 00:23:24
Source: PAT A1069 The Black Hole of Numbers (20 分) Description: For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in non-increasing order first, and then in non-decreasing order, a new number can be obtained by taking the second number from the first one. Repeat in this manner we will soon end up at the number 6174 -- the black hole of 4-digit numbers. This number is named Kaprekar Constant. For example, start from 6767 , we'll get: 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 ... ... Given any 4

爬虫解析Re 之(六 ) --- Re模块

自古美人都是妖i 提交于 2019-11-28 21:51:28
正则表达式 正则表达式其实就是特殊的字符串, 帮助进行检索, 校验, 查询等行为,是对字符串操作的一种逻辑公式, 事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符”,这个“规则字符” 来表达对字符的一种过滤逻辑。 Python提供的正则表达式机制: 需要导入模块 re 正则表达式使用场景 验证的作用: 密码的验证 用户名的验证 邮箱 手机号等等 爬虫: 查询校验 正则表达式的规则 正则表达式处理字符串的强大工具, 拥有自己独特的语法, 并且拥有一个独立处理正则表达式的引擎. 正则表达式处理字符串的效率要比系统本身提供的低, 如果系统的能够完成, 就不用正则表达式 替换 ---- 将字符串中b小写字母 替换成B --- 系统的能完成直接使用系统的即可 替换 ---- 将第一个替换成B 第二个替换成 m --- 系统不能完成 使用正则表达式 在re模块下常用的方法 1. re. compile( 正则表达式的语法 )   根据正则表达式语法生成对应正则表达式对象,方便复用该正则表达式 2. 正则表达式对象 .match( 要进行验证的字符串 )   如果正则表达式语法中没有限制头尾, 验证字符串是否以正则表达式对应字符串开头   如果限制了头尾, 也就是限制了字符串的长度, 验证的字符串内容是否满足正则表达式的需求   如果满足 返回的match对象

PAT_A1093#Count PAT's

我的梦境 提交于 2019-11-28 10:24:56
Source: PAT A1093 Count PAT's (25 分) Description: The string APPAPT contains two PAT 's as substrings. The first one is formed by the 2nd, the 4th, and the 6th characters, and the second one is formed by the 3rd, the 4th, and the 6th characters. Now given any string, you are supposed to tell the number of PAT 's contained in the string. Input Specification: Each input file contains one test case. For each case, there is only one line giving a string of no more than 1 characters containing only P , A , or T . Output Specification: For each test case, print in one line the number of PAT 's

PAT B1009 说反话

眉间皱痕 提交于 2019-11-28 09:16:21
PAT B1009 说反话 题目描述:   给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。    输入格式:   测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。    输出格式:   每个测试用例的输出占一行,输出倒序后的句子。    输入样例:    Hello World Here I Come    输出样例:    Come I Here World Hello 参考代码: 1 /**************************************************** 2 PAT B1009 说反话 3 ****************************************************/ 4 #include <iostream> 5 #include <stack> 6 7 using namespace std; 8 9 int main() { 10 string temp; 11 stack<string> wordList; 12 13 while (cin >> temp) { 14 wordList.push(temp); 15 } 16 17

PAT B1002 写出这个数

筅森魡賤 提交于 2019-11-28 09:14:45
PAT B1002 写出这个数 题目描述:   读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。    输入格式:   每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​100​​。    输出格式:   在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。    输入样例:    1234567890987654321123456789    输出样例:    yi san wu 参考代码: 1 /**************************************************** 2 PAT B1002 写出这个数 3 ****************************************************/ 4 #include <iostream> 5 #include <vector> 6 7 using namespace std; 8 9 const string NUM_STRING[10]{ "ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu" }; 10 11 int main() { 12 string num; 13 vector<int>

PAT B1021 个位数统计

試著忘記壹切 提交于 2019-11-28 08:59:34
PAT B1021 个位数统计 题目描述:   给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。    输入格式:   每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。    输出格式:   对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。       输入样例:    100311    输出样例:    0:2   1:3   3:1 参考代码: 1 /**************************************************** 2 PAT B1021 个位数统计 3 ****************************************************/ 4 #include <iostream> 5 6 using namespace std; 7 8 int main() { 9 string num; 10 int appearTime[10]{ 0 }; //统计数字0·9出现的次数

PAT B1022 D进制的A + B

倾然丶 夕夏残阳落幕 提交于 2019-11-28 08:30:38
PAT B1022 D进制的A + B 题目描述:    输入两个非负 10 进制整数 A 和 B (≤2​30​​−1),输出 A+B 的 D (1<D≤10)进制数。    输入格式:   输入在一行中依次给出 3 个整数 A、B 和 D。    输出格式:   输出 A+B 的 D 进制数。    输入样例:    123 456 8    输出样例:    1103 参考代码: 1 /**************************************************** 2 PAT B1022 D进制的A + B 3 ****************************************************/ 4 #include <iostream> 5 #include <vector> 6 7 using namespace std; 8 9 int main() { 10 vector<int> ans; //存储转换禁止之后的结果 11 int num1 = 0, num2 = 0, sum = 0, decimal = 0; 12 13 cin >> num1 >> num2 >> decimal; 14 15 sum = num1 + num2; 16 17 while (sum != 0) { 18 ans.push_back

PAT Basic 1040 有几个PAT (25 分)

陌路散爱 提交于 2019-11-28 07:01:50
字符串 APPAPT 中包含了两个单词 PAT ,其中第一个 PAT 是第 2 位( P ),第 4 位( A ),第 6 位( T );第二个 PAT 是第 3 位( P ),第 4 位( A ),第 6 位( T )。 现给定字符串,问一共可以形成多少个 PAT ? 输入格式: 输入只有一行,包含一个字符串,长度不超过 1,只包含 P 、 A 、 T 三种字母。 输出格式: 在一行中输出给定字符串中包含多少个 PAT 。由于结果可能比较大,只输出对 1000000007 取余数的结果。 输入样例: APPAPT 输出样例: 2 #include <iostream> #include < string > using namespace std; int main() { string s; cin >> s; long long i= 0 ,k= 0 ,len= s.length(); long long sum= 0 ; for ( long long m= 0 ;m<len;m++ ){ if (s[m]== ' T ' ) k++ ; } for ( long long m= 0 ;m<len;m++ ){ if (s[m]== ' P ' ) i++ ; if (s[m]== ' T ' ) k-- ; if (s[m]== ' A ' ) { sum +=((i*k

PAT B1032 挖掘机技术哪家强

こ雲淡風輕ζ 提交于 2019-11-28 06:45:32
PAT B1032 挖掘机技术哪家强 题目描述:   为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。    输入格式:   输入在第 1 行给出不超过 10​5​​ 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从 1 开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。    输出格式:   在一行中给出总得分最高的学校的编号、及其总分,中间以空格分隔。题目保证答案唯一,没有并列。    输入样例:    6   3 65   2 80   1 100   2 70   3 40   3 0    输出样例 :    2 150 参考代码: 1 /**************************************************** 2 PAT B1032 挖掘机技术哪家强 3 ****************************************************/ 4 #include <iostream> 5 6 using namespace std; 7 8 const int MAX = 100010; 9 int schoolScore[MAX] = { 0 }; //记录学校的总得分 10 11 int

PAT Basic 1040 有几个PAT (25 分)

。_饼干妹妹 提交于 2019-11-28 06:44:59
字符串 APPAPT 中包含了两个单词 PAT ,其中第一个 PAT 是第 2 位( P ),第 4 位( A ),第 6 位( T );第二个 PAT 是第 3 位( P ),第 4 位( A ),第 6 位( T )。 现给定字符串,问一共可以形成多少个 PAT ? 输入格式: 输入只有一行,包含一个字符串,长度不超过 1,只包含 P 、 A 、 T 三种字母。 输出格式: 在一行中输出给定字符串中包含多少个 PAT 。由于结果可能比较大,只输出对 1000000007 取余数的结果。 输入样例: APPAPT 输出样例: 2 #include <iostream> #include <string> using namespace std; int main() { string s; cin>>s; long long i=0,k=0,len=s.length(); long long sum=0; for(long long m=0;m<len;m++){ if(s[m]=='T') k++; } for(long long m=0;m<len;m++){ if(s[m]=='P') i++; if(s[m]=='T') k--; if(s[m]=='A') { sum+=((i*k)%1000000007); } } cout<<sum%1000000007;