PAT 乙级 1014

  本题主要还是考验细致程度,需要把各种情况考虑到、题审清楚

  1 #include <iostream>
  2 #include <string>
  3 using namespace std;
  4
  5 int main() {
  6     string str[4];
  7     for (int i = 0; i < 4; i++)
  8         getline(cin, str[i]);
  9     int str_1 = 0, str_2 = 0;
 10     str_1 = str[0].size();
 11     str_2 = str[1].size();
 12     int len = 0;
 13     if (str_1 > str_2)
 14         len = str_2;
 15     else len = str_1;
 16     int cnt = 0;
 17     for (int i = 0; i < len; i++) {
 18         if (str[0][i] == str[1][i]) {
 19             char tmp = str[0][i];
 20             if (cnt == 0 && tmp >= ‘A‘ && tmp <= ‘G‘) {
 21                 cnt++;
 22                 switch(tmp) {
 23                 case ‘A‘:
 24                     cout << "MON ";
 25                     break;
 26                 case ‘B‘:
 27                     cout << "TUE ";
 28                     break;
 29                 case ‘C‘:
 30                     cout << "WED ";
 31                     break;
 32                 case ‘D‘:
 33                     cout << "THU ";
 34                     break;
 35                 case ‘E‘:
 36                     cout << "FRI ";
 37                     break;
 38                 case ‘F‘:
 39                     cout << "SAT ";
 40                     break;
 41                 case ‘G‘:
 42                     cout << "SUN ";
 43                     break;
 44                 }
 45             }
 46             else if (cnt == 1 && (isdigit(tmp) || tmp >= ‘A‘ && tmp <= ‘N‘)) {
 47                 cnt++;
 48                 switch(tmp) {
 49                 case ‘0‘:
 50                     cout << "00:";
 51                     break;
 52                 case ‘1‘:
 53                     cout << "01:";
 54                     break;
 55                 case ‘2‘:
 56                     cout << "02:";
 57                     break;
 58                 case ‘3‘:
 59                     cout << "03:";
 60                     break;
 61                 case ‘4‘:
 62                     cout << "04:";
 63                     break;
 64                 case ‘5‘:
 65                     cout << "05:";
 66                     break;
 67                 case ‘6‘:
 68                     cout << "06:";
 69                     break;
 70                 case ‘7‘:
 71                     cout << "07:";
 72                     break;
 73                 case ‘8‘:
 74                     cout << "08:";
 75                     break;
 76                 case ‘9‘:
 77                     cout << "09:";
 78                     break;
 79                 case ‘A‘:
 80                     cout << "10:";
 81                     break;
 82                 case ‘B‘:
 83                     cout << "11:";
 84                     break;
 85                 case ‘C‘:
 86                     cout << "12:";
 87                     break;
 88                 case ‘D‘:
 89                     cout << "13:";
 90                     break;
 91                 case ‘E‘:
 92                     cout << "14:";
 93                     break;
 94                 case ‘F‘:
 95                     cout << "15:";
 96                     break;
 97                 case ‘G‘:
 98                     cout << "16:";
 99                     break;
100                 case ‘H‘:
101                     cout << "17:";
102                     break;
103                 case ‘I‘:
104                     cout << "18:";
105                     break;
106                 case ‘J‘:
107                     cout << "19:";
108                     break;
109                 case ‘K‘:
110                     cout << "20:";
111                     break;
112                 case ‘L‘:
113                     cout << "21:";
114                     break;
115                 case ‘M‘:
116                     cout << "22:";
117                     break;
118                 case ‘N‘:
119                     cout << "23:";
120                     break;
121                 }
122             }
123         }
124         if (cnt > 1)
125             break;
126     }
127     str_1 = str[2].size();
128     str_2 = str[3].size();
129     if (str_1 > str_2)
130         len = str_2;
131     else len = str_1;
132     for (int i = 0; i < len; i++) {
133         if (str[2][i] == str[3][i] && ((str[2][i] >= ‘a‘ && str[2][i] <= ‘z‘) || (str[2][i] >= ‘A‘ && str[2][i] <= ‘Z‘))) {
134             if (i < 10)
135                 cout << "0" << i << endl;
136             else
137                 cout << i << endl;
138             break;
139         }
140     }
141
142     return 0;
143 }

原文地址:https://www.cnblogs.com/moujun1001/p/9351400.html

时间: 2025-01-11 06:04:29

PAT 乙级 1014的相关文章

PAT乙级1014

1014 福尔摩斯的约会 (20 分) 大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四:第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0

PAT乙级1014.福尔摩斯的约会 (20)(20 分)

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”.大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母'D',代表星期四:第2对相同的字符是'E',那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9.以及大写字母A到N表示):后面两字符串第1对相同的英文字

1054. 求平均值 (20)-PAT乙级真题

今天刚刚到学校,2017年学习正式开始了,今天看到了浙大的<数据结构>这学期又要开课了,决定一定要跟着学习一遍:在大学生mooc网上学习:http://www.icourse163.org/course/zju-93001#/info :然后就是跟着<算法之美>也要同步看完. 然后就在PAT上随便做一道题,这是第一次通过AC,发现了两个比较好的博客主页:http://www.liuchuo.net/  和  https://www.joyhwong.com/   都总结了刷题的过程

PAT乙级1034. 有理数四则运算(20)

本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0. 输出格式: 分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和.差.积.商.注意输出的每个有理数必须是该有理数的最简形式“k a/b”,其中k是整数部分,a/b是最简分数部分:若为负数,则须加括号:若除法分母为0,则输出“Inf”.题目保证正确的输出中没

PAT乙级1006题python3代码

PAT乙级1006题python3代码 目录 PAT乙级1006题python3代码 目录 代码 题目: 让我们用字母B来表示"百".字母S表示"十",用"12-n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出

PAT 乙级 1045

题目 题目地址:PAT 乙级 1045 题解 本题的解法比较巧妙,刚开始的试着用暴力求解,果不其然时间超限-- 变换思路,既然对于每个元素来说满足的条件是前小后大,那么对数组排序,对应的位置相等的即为题设要求的"可能主元",但是还有一个条件要保证当前是从左向右遍历的最大值:总结一下两个条件:1. 排序后对应位置数字相等:2. 当前操作元素是从左向右遍历中的最大值 同时还要注意,当输入n值为0时,除了需要输出"可能主元"的个数之外,还需要保留换行符'\n' 代码 1

PAT 乙级 1003

题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:"如果 aPbTc 是正确的,那么 aPbATca 也是正确的",这是理解本题的关键信息,观察之后会发现,当b的字符串里再增加一个A,那么T之后的字符串就会多出a个A(特别注意,这里的 'ca' 实际上是 c + a 个A字符的关系),那么这个关系也就显而易见了,只有在 a * b = c 的条件下,才会有这样

PAT 乙级 1017

题目 题目地址:PAT 乙级 1017 题解 粗看是一道大数除法题,实际上只不过是通过字符数组模拟除法过程,理解之后还是比较简单的: 具体分析一下本题: 因为题设中的除数(n)是一位整数,因此大幅简化了整个运算过程:在整个运算中最为重要的就是中间变量(sum),判断中间变量sum是否足够大能被除数n整除,这也是本题的关键所在: 通过是否判断sum是否能被整除,可以分为以下两种情况: 1. sum == 0 && num[i] < n (当前运算位num[i]小于除数) 2. 其余情况

PAT乙级1031

题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 题解 emmm.对于每个身份证号,判断前17位是否合法,并计算其与对应权重积之和,最后判断校验位是否合法. // PAT BasicLevel 1031 // https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 #include