算法实验题 字符串连接问题

★问题描述
所谓字符串连接问题是指将n个字符串前后拼接成一个字符串。不同的接力方式将得到不同的结果。例如n =3时,3个字符串ab,aa,cd 相互连接可能的结果有:aaabcd,aacdab,abaacd,abcdaa,cdaaab,cdabaa。
★编程任务
对于给定的n个字符串,请找出一种最佳的连接方式,使得采用该连接方式得到的字符串在所有连接的结果中,字典序最小。
★数据输入
第一行是一个正整数n(1 <=n<=5000),接下来n行每行一个需要连接的字符串。字符串仅由大小写字母组成,其长度的范围是[1..100]。
★数据输出
输出一行连接n个子串所得到的字典序最小字符串。

输入文件示例 输出文件示例
3 aaabcd
ab
aa
cd
能给出完整编程吗

啊?好吧,我可以帮你写一点思路,
首先,读到输入的第一个字符,即要输入的字符串个数;
然后,new一个一维数组,如:String[] arr=new String[n];//n是你刚刚读到的第一行的正整数;
//如果你用的是c/c++,或许应该这样;char[] arr=new char[n];//...你懂得;
然后,读第二行,把读到的字符给数组,如:arr[0]=a1;//a1是你读到的第二行的字符串;
然后...读到第n行,给数组的最后一个元素,如:arr[n-1]=an;//你懂得;
然后可以比较数组的每个元素;
或许冒泡排序会简单一点,然后数组的字符串加在一起;
值得考虑到是,要让结果字符串的字典序最小,或许需要split每个元素,然后再比较;
最后,或许sdk提供了字符串大小的比较,建议你可以多看看,
就这样了吧,追问

高手能给出全的编程吗?

追答

没环境,自己练习练习啦..............

温馨提示:答案为网友推荐,仅供参考
相似回答