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. flink笔记(三) flink架构及运行方式

    架构图 Job Managers, Task Managers, Clients JobManager(Master) 用于协调分布式执行.它们用来调度task,协调检查点,协调失败时恢复等. Fli ...

  2. hdu 4300 Clairewd’s message 字符串哈希

    Clairewd’s message Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  3. css 径向渐变

    .example { width: 150px; height: 80px; background: -webkit-radial-gradient(red, green, blue); /* Saf ...

  4. prometheus配置简介

    参考网页:https://my.oschina.net/wangyunlong/blog/3060776 global: scrape_interval:             15s evalua ...

  5. MVC学生管理系统-阶段IV(修改学生信息)

    项目源码 :https://download.csdn.net/download/weixin_44718300/11091042 前期准备,主体框架, 学生列表显示  请看阶段一文章 添加学生信息 ...

  6. 合理控制MBA Essay写作字数很重要

    作为一个MBA申请人,在Essay写作的时候一定会迸发各种各样的想法和念头,想要统统传达给招生官.然而面对有限的字数限制,想要尽可能多地在Essay中涵盖重要信息,就让人颇为头痛了. 面对想要倾诉的欲 ...

  7. vscode中c/c++头文件引用找不到飘红

    正在进行 GTK 学习, 但是在 vscode GTK 的头文件找不到(头文件引用底下飘红, 逼死强迫症), 影响敲字键入速度. 解决一下该问题-- vscode中c/c++头文件引用找不到(#inc ...

  8. HDU - 1068 Girls and Boys(二分匹配---最大独立集)

    题意:给出每个学生的标号及与其有缘分成为情侣的人的标号,求一个最大集合,集合中任意两个人都没有缘分成为情侣. 分析: 1.若两人有缘分,则可以连一条边,本题是求一个最大集合,集合中任意两点都不相连,即 ...

  9. Ubuntu使用小技巧汇总

    1. Ubuntu创建/切换root用户 sudo passwd rootsu root 2. 解决Ubuntu14.04系统没有自带右键打开终端的问题 sudo apt-get install na ...

  10. OpenSSL加密证书

    用于建立安全站点的工具,颁发证书,例如https,ftps等 默认配置文件: [root@bogon CA]# cat /etc/pki/tls/openssl.cnf [ CA_default ] ...