17網(wǎng)站一起做網(wǎng)店普寧池尾雅晨做外貿(mào)有哪些網(wǎng)站平臺
題目描述
期末考試即將來臨,小T由于同時肩負(fù)了學(xué)習(xí)、競賽、班團活動等多方面的任務(wù),一直沒有時間好好整理他的課桌抽屜,為了更好地復(fù)習(xí),小T首先要把課桌抽屜里的書分類整理好。
小T的抽屜里堆著 N 本書,每本書的封面上都印有學(xué)科名稱,學(xué)科名稱用一個字符串表示,如語文學(xué)科的書封面上都印有“chinese”?,F(xiàn)在,你的任務(wù)是幫助小T找出哪個學(xué)科的書最多?
輸入
第一行包含一個自然數(shù) N(0<N≤1000)表示抽屜中書的總數(shù)。
接下來 N 行每行包含一本書的學(xué)科名稱,學(xué)科名稱是一個長度不超過 15 的由小寫英文字母組成的字符串。
輸出
僅有一行包含一個字符串,表示最多的那種書的學(xué)科名稱。
數(shù)據(jù)保證答案一定是唯一的。
樣例
輸入
5
english
chinese
physics
chinese
chinese
輸出
chinese
說明
【樣例解釋】
小T課桌抽屜里共有 5 本書,其中有 3 本是語文學(xué)科的,英語學(xué)科和物理學(xué)科各有 1 本,所以最多的是語文學(xué)科的書,應(yīng)輸出“chinese”。
【數(shù)據(jù)范圍】
30% 的數(shù)據(jù)滿足:1≤N≤10,學(xué)科名稱為長度不超過 2 的僅包含英文小寫字母的字符串;
100% 的數(shù)據(jù)滿足:1≤N≤1000,學(xué)科名稱為長度不超過 15 的僅包含英文小寫字母的字符串;
代碼1
#include <iostream>
#include <map>
using namespace std;int main() {int n;cin >> n;map<string, int> subjectCounts;for (int i = 0; i < n; i++) {string subject;cin >> subject;subjectCounts[subject]++;}string maxSubject;int maxCount = 0;for (const auto& count : subjectCounts) {if (count.second > maxCount) {maxSubject = count.first;maxCount = count.second;}}cout << maxSubject << endl;return 0;
}
該代碼首先讀入輸入的n,并創(chuàng)建一個map
對象subjectCounts
來存儲每個學(xué)科及其出現(xiàn)次數(shù)。接下來,使用一個循環(huán)讀取每本書的學(xué)科名稱,使用subjectCounts[subject]++
來增加對應(yīng)學(xué)科的出現(xiàn)次數(shù)。
然后,我們通過遍歷subjectCounts
找到出現(xiàn)次數(shù)最多的學(xué)科名稱和對應(yīng)的出現(xiàn)次數(shù)。我們使用兩個變量maxSubject
和maxCount
來記錄出現(xiàn)次數(shù)最多的學(xué)科名稱和出現(xiàn)次數(shù)。如果有多個學(xué)科出現(xiàn)次數(shù)最多,則我們僅保留字典碼最大的學(xué)科名稱。
最后,我們輸出maxSubject
,即出現(xiàn)次數(shù)最多的學(xué)科名稱。
代碼2
#include <iostream>
#include <unordered_map>
using namespace std;int main() {int n;cin >> n;unordered_map<string, int> subjectCounts;string maxSubject;int maxCount = 0;for (int i = 0; i < n; i++) {string subject;cin >> subject;subjectCounts[subject]++;if (subjectCounts[subject] > maxCount) {maxSubject = subject;maxCount = subjectCounts[subject];}}cout << maxSubject << endl;return 0;
}
該代碼首先讀入輸入的n,并創(chuàng)建一個unordered_map
對象subjectCounts
來存儲每個學(xué)科及其出現(xiàn)次數(shù)。我們還定義了兩個變量maxSubject
和maxCount
來記錄出現(xiàn)次數(shù)最多的學(xué)科名稱和出現(xiàn)次數(shù)。
接下來,使用一個循環(huán)讀取每本書的學(xué)科名稱,并在subjectCounts
中增加對應(yīng)學(xué)科的出現(xiàn)次數(shù)。同時,我們通過比較當(dāng)前學(xué)科的出現(xiàn)次數(shù)與maxCount
來更新出現(xiàn)次數(shù)最多的學(xué)科名稱和出現(xiàn)次數(shù)。
最后,我們輸出maxSubject
,即出現(xiàn)次數(shù)最多的學(xué)科名稱。
這種方法使用了unordered_map
來存儲學(xué)科及其出現(xiàn)次數(shù),使用一個循環(huán)遍歷每本書,并實時更新出現(xiàn)次數(shù)最多的學(xué)科。它更加直觀和通俗,不需要使用map
和手動比較字典碼大小。