【数据结构与算法】字符比较和排序 |
您所在的位置:网站首页 › ASCLL码排序 › 【数据结构与算法】字符比较和排序 |
![]() 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 输入 第一行,一个正整数n。 第二行,n个正整数。 输出 一个正整数,表示最大的整数 样例输入 Copy 3 13 312 343样例输出 Copy 34331213![]() 本质上是字符的比较和排序,将数字进行字符串读取,用数组存储为一个个字符串,这样便于比较 #include using namespace std; int main(){ int n; scanf("%d", &n); string arr[22]; for(int i=0;i>arr[i]; // 本质上是冒泡排序 for(int i=0;ii;j--){ /** * 实现字符串的升序排序 * 为什么可以直接用字符串进行比较? * 因为字符0123456789的ASCLL码也是递增的 * 这个函数比较巧妙 需要对字符串有较为深刻的理解 */ if(arr[j]+arr[j-1]>arr[j-1]+arr[j]){ string temp=arr[j]; arr[j]=arr[j-1]; arr[j-1]=temp; } } } for(int i=0;i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |