华为机试:
题目描述:
给定n个字符串,请对n个字符串按照字典序排列。
解题思路:
首先想到的肯定是对字符串数组进行直接排序,然后输出结果,在数组中有sort函数可以使用,在string中同样可以自己写一个排序函数,实现对字符串数组的排序。
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(string &s1,string &s2){
return s1<s2;
}
int main(){
int n;
while(cin>>n){
vector<string>input;
for(int i=0;i<n;i++){
string tmp;
cin>>tmp;
input.push_back(tmp);
}
sort(input.begin(),input.end(),cmp);
for(int i=0;i<input.size();i++){
cout<<input[i]<<endl;
}
return 0;
}
}
当然,如果不用sort函数,则可以用冒泡或者选择等排序方法,对字符串数组进行排序,借助于strcmp和strcp函数。
【内驱力】