• PAT 乙级 1014 福尔摩斯的约会 (20) C++版


    1014. 福尔摩斯的约会 (20)

    时间限制
    100 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

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

    输入格式:

    输入在4行中分别给出4个非空、不包含空格、且长度不超过60的字符串。

    输出格式:

    在一行中输出约会的时间,格式为“DAY HH:MM”,其中“DAY”是某星期的3字符缩写,即MON表示星期一,TUE表示星期二,WED表示星期三,THU表示星期四,FRI表示星期五,SAT表示星期六,SUN表示星期日。题目输入保证每个测试存在唯一解。

    输入样例:
    3485djDkxh4hhGE 
    2984akDfkkkkggEdsb 
    s&hgsfdk 
    d&Hyscvnm
    
    输出样例:
    THU 14:04


    这一题虽然难度系数0.16,但是难的原因应该是表意不明导致的,真正的题目意思我已添加进去并用红色注释,真的太坑说实话

    当看到这一题AC出来,眼泪都出来了


     1 // 1014.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<iostream>
     6 #include<string>
     7 #include<cctype>
     8 #include<typeinfo>
     9 #include<iomanip>
    10 
    11 using namespace std;
    12 
    13 int main()
    14 {
    15     int i, num = 0,temp;//num表示字符串匹配几个数字
    16     string day[7] = {"MON","TUE","WED","THU","FRI","SAT","SUN"},secret[4];
    17 
    18     for (i = 0; i < 4; i++)
    19         getline(cin, secret[i]);
    20 
    21     //处理前两个字符串
    22     for (i = 0; num != 2; i++)
    23     {
    24         if (num == 0)//得到周几
    25         {
    26             if (isupper(secret[0][i]) && secret[0][i] == secret[1][i] && secret[0][i] <= 'G'&&secret[0][i] >= 'A')
    27             {
    28                     cout << day[(static_cast<int>(secret[0][i] - 65)) % 7] << " ";//注意越界情况
    29                     num++;
    30             }
    31         }
    32         else//得到小时
    33         {
    34             if (isupper(secret[0][i]) && secret[0][i] == secret[1][i] && secret[0][i] >= 'A' && secret[0][i] <= 'N')//大于九点的情况
    35             {
    36                     cout << setw(2) << setfill('0') << static_cast<int>(secret[0][i] - 55) << ":";
    37                     num++;
    38             }
    39             else if (isdigit(secret[0][i])&& secret[0][i]==secret[1][i])//小于等于九点
    40             {
    41                 cout << setw(2) << setfill('0') << static_cast<int>(secret[0][i] - 48) << ":";
    42                 num++;
    43             }
    44         }
    45     }
    46 
    47     //得到分钟
    48     for (i = 0; 1; i++)
    49     {
    50         if (isalpha(secret[2][i]) && secret[2][i]== secret[3][i])
    51         {
    52             cout << setw(2) << setfill('0') << i << endl;
    53             break;
    54         }
    55 
    56     }
    57 
    58     return 0;
    59 }


  • 相关阅读:
    倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT 如何简单执行NC功能块 TC3
    android studio导入项目时一直在Grandle Build Running
    Android Studio真机测试失败-----''No target device found"
    androidSDK配置环境变量
    Android Studio真机测试
    Android Studio修改默认Activity继承AppCompatActivity
    第一次使用Android Studio时你应该知道的一切配置(二):新建一个属于自己的工程并安装Genymotion模拟器
    第一次使用Android Studio时你应该知道的一切配置
    打开Android Studio时报Unable to access Android SDK add-on list
    友盟统计小白教程:创建应用,申请appkey
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/7192504.html
Copyright © 2020-2023  润新知