• 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;
    }
    
  • 相关阅读:
    左侧导航太长了?
    组织结构配置文件的诡异行为
    SharePoint上无法显示Lync的在线状态
    多语言和自定义CSS
    文档库下载副本,文件名被截断
    在线menu生成网站
    FC7崩溃,安装Ubuntu,相当不错的系统
    简易下载baidu音乐排行榜音乐
    java放射调用静态方法和构造函数
    升级到Ubuntu7.10导致Eclipse中键盘无效的问题
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14399950.html
Copyright © 2020-2023  润新知