Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm. It took him only a minute to figure out that those strange strings are actually referring to the coded time Thursday 14:04 -- since the first common capital English letter (case sensitive) shared by the first two strings is the 4th capital letter D, representing the 4th day in a week; the second common character is the 5th capital letter E, representing the 14th hour (hence the hours from 0 to 23 in a day are represented by the numbers from 0 to 9 and the capital letters from A to N, respectively); and the English letter shared by the last two strings is s at the 4th position, representing the 4th minute. Now given two pairs of strings, you are supposed to help Sherlock decode the dating time.

Input Specification:
Each input file contains one test case. Each case gives 4 non-empty strings of no more than 60 characters without white space in 4 lines.

Output Specification:
For each test case, print the decoded time in one line, in the format DAY HH:MM, where DAY is a 3-character abbreviation for the days in a week -- that is, MON for Monday, TUE for Tuesday, WED for Wednesday, THU for Thursday, FRI for Friday, SAT for Saturday, and SUN for Sunday. It is guaranteed that the result is unique for each case.

Sample Input:

3485djDkxh4hhGE
2984akDfkkkkggEdsb
s&hgsfdk
d&Hyscvnm

Sample Output:

THU 14:04

考察内容是字符串处理。
这是很久之前的写法。

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char ans1[100],ans2[100],ans3[100],ans4[100];
    const char week[7][7]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
    cin.get(ans1,100);
    getchar();
    cin.get(ans2,100);
    getchar();
    cin.get(ans3,100);
    getchar();
    cin.get(ans4,100);
    getchar();
//  printf("%s",ans1);
    int len1=strlen(ans1);
    int len2=strlen(ans2);
    int len3=strlen(ans3);
    int len4=strlen(ans4);
    int i;
    for(i = 0;i<len1&&i<len2;i++)
    {
        if(ans1[i]==ans2[i]&&ans1[i]>='A'&&ans1[i]<='G')
        {
            printf("%s ",week[ans1[i]-'A']);break;
        }
    }
    for(i++;i<len1&&i<len2;i++)
    {
        if(ans1[i]==ans2[i])
        {
            if(ans1[i]>='0'&&ans1[i]<='9')
            {
                printf("%02d:",ans1[i]-'0');break;
            }
            else if(ans1[i]>='A'&&ans1[i]<='N')
            {
                printf("%02d:",ans1[i]-'A'+10); break;
            }
        }
    }
    for(int j=0;j<len3&&j<len4;j++)
    {
        if(ans3[j]==ans4[j]&&((ans3[j]>='A'&&ans3[j]<='Z')||(ans3[j]>='a'&&ans3[j]<='z')) )
        {
                printf("%02d",j);break;
        }
    }
    return 0;
 } 

参考了柳婼解法,人家的解法是这个:

#include <iostream>
#include <cctype>
using namespace std;
int main() {
        string a, b, c, d;
        cin >> a >> b >> c >> d;
        char t[2];
        int pos, i = 0, j = 0;
        while(i < a.length() && i < b.length()) {
                if (a[i] == b[i] && (a[i] >= 'A' && a[i] <= 'G')) {
                        t[0] = a[i];
                        break;
                    }
                i++;
                }
         i = i + 1;
         while (i < a.length() && i < b.length()) {
         if (a[i] == b[i] && ((a[i] >= 'A' && a[i] <= 'N') || isdigit(a[i]))) {
                 t[1] = a[i];
                 break;
         }
         i++;
 }
             while (j < c.length() && j < d.length()) {
                     if (c[j] == d[j] && isalpha(c[j])) {
                     pos = j;
                     break;
     }
         j++;
 }
 string week[7] = {"MON ", "TUE ", "WED ", "THU ", "FRI ", "SAT ", "SUN "};
 int m = isdigit(t[1]) ? t[1] - '0' : t[1] - 'A' + 10;
 cout << week[t[0]-'A'];
 printf("%02d:%02d", m, pos);
 return 0;
}

PAT甲级——1061 Dating (20分)的更多相关文章

  1. PAT 甲级 1061 Dating (20 分)(位置也要相同,题目看不懂)

    1061 Dating (20 分)   Sherlock Holmes received a note with some strange strings: Let's date! 3485djDk ...

  2. PAT 甲级 1035 Password (20 分)(简单题)

    1035 Password (20 分)   To prepare for PAT, the judge sometimes has to generate random passwords for ...

  3. PAT 甲级 1077 Kuchiguse (20 分)(简单,找最大相同后缀)

    1077 Kuchiguse (20 分)   The Japanese language is notorious for its sentence ending particles. Person ...

  4. PAT甲级——1061 Dating

    1061 Dating Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2 ...

  5. 【PAT甲级】1061 Dating (20 分)

    题意: 给出四组字符串,前两串中第一个位置相同且大小相等的大写字母(A~G)代表了周几,前两串中第二个位置相同且大小相等的大写字母或者数字(0~9,A~N)代表了几点,后两串中第一个位置相同且大小相等 ...

  6. PAT Basic 1014 福尔摩斯的约会 (20 分) Advanced 1061 Dating (20 分)

    大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm.大侦探很快就明白了,字条上奇 ...

  7. PAT甲级——1035 Password (20分)

    To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...

  8. 1061 Dating (20分)

    Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2984akDfkkkkg ...

  9. PAT甲级1061 Dating

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805411985604608 题意: 给定四个字符串. 前两个字符串 ...

随机推荐

  1. 了解C#

    了解C C#能编写那些程序 Windows桌面应用程序 桌面应用有自己独立的进程与操作系统进行消息通讯,操作系统对事件进行检测,传递给桌面应用进程,桌面应用进程对这些消息进行解释,处理后,把处理结果u ...

  2. 如何安装Anaconda

    如何安装Anaconda Python作为一门易读.易维护的语言,在工作和学习中应用广泛,被大量用户所欢迎.本文主要给大家介绍一下Anaconda 步骤 1 Anaconda在官网就可以下载,网址:h ...

  3. [Mathematics][Fundamentals of Complex Analysis][Small Trick] The Trick on drawing the picture of sin(z), for z in Complex Plane

    Exercises 3.2 21. (a). For $\omega = sinz$, what is the image of the semi-infinite strip $S_1 = \{x+ ...

  4. 005、mysql查询表的结构

    EXPLAIN hcc_ip 如果有一个表,表明为hcc_ip,使用以上语句可以得到下图 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:38247724 ...

  5. 吴裕雄--天生自然 PHP开发学习:字符串变量

    <?php $txt="Hello world!"; echo $txt; ?> <?php $txt1="Hello world!"; $t ...

  6. 吴裕雄--天生自然 PHP开发学习:类型比较

    <?php if(42 == "42") { echo '1.值相等'; } echo PHP_EOL; // 换行符 if(42 === "42") { ...

  7. 设置Apache(httpd)和Nginx 开机自启动

     方法1: 进入目录: vi  /etc/rc.d/rc.local #设置apache 和 nginx 开机自启动/usr/sbin/apachectl start/usr/sbin/nginx s ...

  8. Day 5 :ArrayList原理、LinkedList原理和方法和迭代器注意事项

    迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素个数,如果需要添加或者删除只能使用迭代器的方法进行操作.   如果使用过了集合对象改变集合中元素个数那 ...

  9. C++ Opencv播放AVI

    #include "cxcore.h" #include "cvcam.h" #include "windows.h" #include & ...

  10. nginx常用内置变量

    $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为 ...