a221 - 11734 - Big Number of Teams will Solve This
題目描述
題目要求模擬 Judge 的判斷,比較隊伍的輸出與標準輸出。隊伍的輸出可能包含多餘的空格,而標準輸出則不包含空格。需要判斷隊伍的輸出是否與標準輸出完全匹配(包括空格),如果不匹配,則需要判斷在忽略空格後是否匹配。如果忽略空格後也不匹配,則判斷為 "Wrong Answer",如果長度不一致,則判斷為 "Output Format Error",如果完全匹配則判斷為 "Yes"。
解題思路
程式首先讀取測試案例的數量。對於每個測試案例,程式讀取隊伍的輸出和標準輸出。然後,程式檢查隊伍的輸出和標準輸出的長度是否相同。如果長度相同,則直接比較兩個字串是否相等。如果長度不同,則移除隊伍輸出中的空格,然後比較移除空格後的字串和標準輸出是否相等。如果相等,則輸出 "Output Format Error",否則輸出 "Wrong Answer"。
複雜度分析
- 時間複雜度: O(n), 其中 n 是字串的長度。因為需要遍歷字串以移除空格和比較字串。
- 空間複雜度: O(n), 其中 n 是字串的長度。因為需要建立一個新的字串來儲存移除空格後的隊伍輸出。
程式碼
#include <iostream>
#include <string>
using namespace std;
int main(){
int a;
string b,c;
cin >> a;
getline(cin,b);
for(int h=1;h<=a;h++){
getline(cin,b);
getline(cin,c);
cout << "Case " << h << ": ";
if(b.length()!=c.length()){
string d,e;
for(int i=0;i<b.length();i++){
if(b[i]!=' '){
d+=b[i];
}
}
for(int i=0;i<c.length();i++){
if(c[i]!=' '){
e+=c[i];
}
}
if(d==e){
cout << "Output Format Error\n";
}
else{
cout << "Wrong Answer\n";
}
}
else{
if(b==c){
cout << "Yes\n";
}
else{
cout << "Wrong Answer\n";
}
}
}
}