赞
踩
题目描述:有n个字符串,将其从大到小依次输出(无空格)
这其实就是说,给你几个字符串,在不改变字符串本身的前提下组合成一个最大的数(或文段)
这就用到了c++中的一个知识:字符串排序(是的,字符串也可以排序)
排序规则:
比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。
比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。
再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。
所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。
废话不说了,上代码:
- #include <iostream>
- #include <algorithm>
- using namespace std;
- string s[25];
- bool cmp(string a,string b)
- {
- return a>b;
- }
- int main()
- {
- int n;
- cin >> n;
- for(int i=1;i<=n;i++)
- {
- cin >> s[i];
- }
- sort(s+1,s+n+1,cmp);
- for(int i=1;i<=n;i++)
- {
- cout << s[i];
- }
- return 0;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。