JSK-16016 單詞排序【排序】
阿新 • • 發佈:2018-12-13
單詞排序
小紅學會了很多英文單詞,媽媽為了幫小紅加強記憶,拿出紙、筆,把 NNN 個單詞寫在紙上的一行裡,小紅看了幾秒鐘後,將這張紙扣在桌子上。媽媽問小紅:“你能否將這 N 個單詞按照字典排列的順序,從小到大寫出來?”小紅按照媽媽的要求寫出了答案。現在請你編寫程式幫助媽媽檢查小紅的答案是否正確。注意:所有單詞都由小寫字母組成,開頭字母全都不相同,單詞兩兩之間用一個空格分隔。
輸入格式
輸入包含兩行。
第一行僅包括一個正整數 N(0<N≤26)。
第二行包含 N 個單詞,表示媽媽寫出的單詞,兩兩之間用一個空格分隔。單個單詞長度不超過 10。
輸出格式
輸出僅有一行——針對媽媽寫出的單詞,按照字典排列的順序從小到大排列成一行的結果,單詞兩兩之間用一個空格分隔。
樣例輸入
4
city boy tree student
樣例輸出
boy city student tree
題目來源
2016 年海淀區中小學生資訊學奧林匹克競賽
問題連結:JSK-16016 單詞排序 問題描述:(略) 問題分析: 這是一個排序問題,還是用C++語言來實現比較方便。 程式說明: 題面很坑,說好的“輸出,單詞兩兩之間用一個空格分隔”,結果讓俺格式錯誤一次,為什麼輸出的每個單詞後面需要一個空格? 參考連結:(略) 題記:能不用陣列就不用陣列,儲存要能省則省。
AC的C語言程式如下:
/* JSK-16016 單詞排序 */
#include <bits/stdc++.h>
using namespace std;
const int N = 26;
string s[N];
int main()
{
int n;
cin >> n;
for(int i = 0; i < n; i++)
cin >> s[i];
sort(s, s + n);
// 輸出結果
for(int i = 0; i < n; i++)
cout << s[i] << " ";
cout << endl;
return 0;
}