鍍金池/ 問答/C++  網(wǎng)絡(luò)安全/ PAT 1014 福爾摩斯的約會(huì)

PAT 1014 福爾摩斯的約會(huì)

https://pintia.cn/problem-set...
這個(gè)題目第1、2個(gè)用例總是過不了,大佬們能幫忙看看哪里錯(cuò)了嗎?

#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;
}
回答
編輯回答
墨小羽

第二個(gè) for 循環(huán)不對:

    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] << ":";
            // 此處別的情況呢?如果匹配了不是數(shù)字也不是 A~N 的字母,循環(huán)仍要繼續(xù)
            break;
        }
    }
2017年9月12日 15:11