字符串排序——c++
比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。这其实就是说,给你几个字符串,在不改变字符串本身的前提下组合成一个最大的数(或文段)再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。所以,长度不能直接决
·
题目描述:有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;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)