zoukankan      html  css  js  c++  java
  • 1061 Dating (20 分)

    wdnmd真就阅读理解啊,读了好几发并且rush了几发才算真正读懂题>_<。

    题意

    给出4个字符串,其中前两个字符串包含两个信息:DAY和HH,后两个包含一个信息:MM。
    下面给出这个信息的识别信息和转换关系:

    1. DAY:前两个字符串的第一对相同位置的A ~ G的大写字母。
      • 转换关系:大写字母是从A开始的第几个,就是星期几。
    2. HH:寻找信息DAY的位置之后的第一对相同位置的0 ~ 9或A ~ N的字符。
      • 转换关系:0 ~ 9对应0 ~ 9,A ~ N对应10 ~ 23。
    3. MM:后两个字符串的第一对相同位置的A ~ Z或a ~ z的英文字母。
      • 转换关系:该字符所在的位置(从0开始)。

    最后按DAY:HH:MM的格式输出。

    思路

    1. 扫描前两个字符串,寻找第-对相同位置的A ~ G的大写字母。找到之后,求出其与字符'A'的距离,就可以推断出是星期几。
    2. 在步骤1的位置基础上,继续往后寻找,直到碰到第一对相同位置的 0 ~ 9或A ~ N的字符,将其分别转换到0 ~ 9与10 ~ 23。
    3. 扫描后两个字符串,寻找第一对相同位置的A ~ Z或a ~ z的英文字母,获取其位置。

    注意点

    1. 步骤1和步骤2中不能出现A ~ Z,而是需要限定完整,即A ~ G或者A ~ N,否则会“答案错误”。
    2. 题目中“第2对相同的字符”这一描述有点模糊,其实是在第一个信息的位置之后的下一对满足条件的字符,而不是重新从头扫描碰到的第2对满足条件的字符。否则样例的理解会出现问题,即一开始的8也会被算进去,导致得到第2对满足条件的字符会是D而不是E。

    (update)
    这居然是个(20)分的题。。。。

    string mp[]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
    string a,b,c,d;
    
    bool check1(char x)
    {
        return x>='A' && x<='G';
    }
    
    bool check2(char x)
    {
        if(isdigit(x)) return true;
        else return x>='A' && x<='N';
    }
    
    int main()
    {
        cin>>a>>b>>c>>d;
    
        int weekday;
        int hh,ss;
        int pos;
        for(int i=0;i<min(a.size(),b.size());i++)
            if(a[i] == b[i] && check1(a[i]) && check1(b[i]))
            {
                weekday=a[i]-'A';
                pos=i;
                break;
            }
    
        for(int i=pos+1;i<min(a.size(),b.size());i++)
            if(a[i] == b[i] && check2(a[i]) && check2(b[i]))
            {
                if(isdigit(a[i])) hh=a[i]-'0';
                else hh=a[i]-'A'+10;
                break;
            }
    
        for(int i=0;i<min(c.size(),d.size());i++)
            if(c[i] == d[i] && isalpha(c[i]))
            {
                ss=i;
                break;
            }
    
        printf("%s %02d:%02d",mp[weekday].c_str(),hh,ss);
    
       //system("pause");
        return 0;
    }
    
  • 相关阅读:
    unexpected inconsistency;run fsck manually esxi断电后虚拟机启动故障
    centos 安装mysql 5.7
    centos 7 卸载mysql
    centos7 在线安装mysql5.6,客户端远程连接mysql
    ubuntu 14.04配置ip和dns
    centos7 上搭建mqtt服务
    windows eclipse IDE打开当前类所在文件路径
    git 在非空文件夹clone新项目
    eclipse中java build path下 allow output folders for source folders 无法勾选,该如何解决 eclipse中java build path下 allow output folders for source folders 无法勾选,
    Eclipse Kepler中配置JadClipse
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14399950.html
Copyright © 2011-2022 走看看