題目敘述
每筆測資第一行有一個正整數N,接下來會有N行,每行會有一個字串,代表每個檔案的邊號。如果今天檔案編號的最後三個字元是000~009,這個檔案會被分在0號資料夾,如果是010~019,這個檔案會被分在1號資料夾,以此類推。要求輸出哪些資料夾有存放檔案和這個資料夾中有多少個檔案。
範例輸入 #1
1
000000
範例輸出 #1
0 1
範例輸入 #2
5
232944
123941
201322
234941
231320
範例輸出 #2
32 2
94 3
範例輸入 #3
5
987012
342221
223120
126641
127643
範例輸出 #3
1 1
12 1
22 1
64 2
解題思路
使用Map來存放不同資料夾的檔案數量,輸出時可以用Auto跑Map的For迴圈。
解題程式碼如下 (僅供參考):
#include <iostream>
#include <map>
using namespace std;
int main() {
cin.sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
map<int, int>MAP;
for (int i = 0; i<N; i++)
{
string str;
cin >> str;
string tmp = "";
tmp += str[3];
tmp += str[4];
MAP[stoi(tmp)]++;
}
for (auto it:MAP)
{
cout << it.first << " " << it.second << "\n";
}
}
留言
張貼留言