题目描述
给定n个字符串,请对n个字符串按照字典序排列。
输入描述:
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
输出描述:
数据输出n行,输出结果为按照字典序排列的字符串。
示例1
输入
9
cap
to
cat
card
two
too
up
boat
boot
输出
boat
boot
cap
card
cat
to
too
two
up
如果单纯是为了解题的话,很多排序类的题都可以利用起来标准的STL。
这一题可以利用关系型STL map。因为map的迭代器遍历输出key的话,就是按照字典顺序输出。
题目描述
给定n个字符串,请对n个字符串按照字典序排列。
输入描述:
输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。
输出描述:
数据输出n行,输出结果为按照字典序排列的字符串。
示例1
输入
9
cap
to
cat
card
two
too
up
boat
boot
输出
boat
boot
cap
card
cat
to
too
two
up
如果单纯是为了解题的话,很多排序类的题都可以利用起来标准的STL。
这一题可以利用关系型STL map。因为map的迭代器遍历输出key的话,就是按照字典顺序输出。
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
int N = 0;
string str("");
cin >> N;
map<string, int>stringMap;
getline(cin, str); //接收Enter后的空字符
for (int i = 0; i < N; ++i)
{
str.clear();//每次循环开始之前清空str内容,用来接收新的string
getline(cin, str);
stringMap.insert(pair<string, int>(str, 1));//添加到map中,将string作为key
}
map<string, int>::iterator iter = stringMap.begin();//迭代器遍历
for (; iter != stringMap.end(); ++iter)
{
cout << iter->first << endl;//输出所有map的key
}
system("pause");
return 0;
}