PAT 1014 福尔摩斯的约会

发布于 2022-09-07 21:15:02 字数 1435 浏览 25 评论 0

https://pintia.cn/problem-set...
这个题目第1、2个用例总是过不了,大佬们能帮忙看看哪里错了吗?

#include <iostream>
#include <string>

using namespace std;
string s1, s2, s3, s4;
string day[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};

int main()
{
    cin >> s1 >> s2 >> s3 >> s4;

    int i;
    for(i = 0; i < min(s1.size(), s2.size()); i++){
        if(s1[i] == s2[i] && isupper(s1[i]) && s1[i] <= 'G'){
            cout << day[s1[i] - 'A'] << " ";
            break;
        }
    }

    i++;
    for(; i < min(s1.size(), s2.size()); i++){
        if(s1[i] == s2[i]){
            if(s1[i] >= 'A' && s1[i] <= 'N')
                cout << 10 + s1[i] - 'A' << ":";
            else if(isdigit(s1[i]))
                cout << '0' << s1[i] << ":";
            break;
        }
    }

    for(i = 0; i < min(s3.size(), s4.size()); i++){
        if(s3[i] == s4[i] && isalpha(s3[i])){
            if(i < 10)
                cout << '0' << i << endl;
            else
                cout << i << endl;
            break;
        }
    }

    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁的新欢旧爱 2022-09-14 21:15:02

第二个 for 循环不对:

    for(; i < min(s1.size(), s2.size()); i++){
        if(s1[i] == s2[i]){
            if(s1[i] >= 'A' && s1[i] <= 'N')
                cout << 10 + s1[i] - 'A' << ":";
            else if(isdigit(s1[i]))
                cout << '0' << s1[i] << ":";
            // 此处别的情况呢?如果匹配了不是数字也不是 A~N 的字母,循环仍要继续
            break;
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文