[实战演练]史上最长最醒目的队名
Problem Description
Jack所在的班级决定组团报名参加FZU校赛。为了体现班级的团结和睦,班长决定用班级所有人的名字连起来组成一个史上最长最醒目的队名。
因为听说在分数相同的情况下,队名字典序小的会排在更前面,班长还希望连成的史上最长队名拥有最小的字典序。
Input 输入数据第一行包含一个整数T,表示测试数据的组数。对于每组测试数据:
第一行为一个整数(10000>=n>0),表示班级成员数。 接下来n行为班级每个人的名字。名字由小写字母组成,每个人名字长度均相同。
Output 对于每组测试数据,输出一行,表示连接成的史上最长队名。
Sample Input
1
3
jim
tom
joe
Sample Output
jimjoetom
1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 6 void paixu(string *str, int nameNum){ 7 for(int i=0;i<nameNum;i++){ 8 for(int j=nameNum-1;j>i;j--){ 9 if(str[j-1]>str[j]){ 10 string temp = str[j-1]; 11 str[j-1] = str[j]; 12 str[j] = temp; 13 } 14 } 15 } 16 } 17 18 int main() 19 { 20 int k1; 21 cin>>k1; 22 int nameNum; 23 string *rec = new string[k1]; 24 for(int i=0;i<k1;i++){ 25 cin>>nameNum; 26 string *str = new string[nameNum]; 27 for(int k=0;k<nameNum;k++){ 28 cin>>str[k]; 29 } 30 paixu(str, nameNum); 31 for(int k=0;k<nameNum;k++){ 32 rec[i] = rec[i]+ str[k]; 33 } 34 delete[] str; 35 } 36 for(int i=0;i<k1;i++){ 37 cout<<rec[i]<<endl; 38 } 39 delete[] rec; 40 //system("pause"); 41 return 0; 42 }
其中paixu()这个函数要写一个数组排序算法,省懒事写了个简单的冒泡排序,其实可以改成快速排序或者归并排序来提升一下效率。这个题目是wenda60.com上面的,不过把这段代码提交之后总是显示“答案正确但是输出格式不对”,在自己电脑上测试了一些例子,暂时没有发现哪里有问题。如有错误,还望能够指正。
分类:
算法题目
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)