【数据结构与算法】字符比较和排序

您所在的位置:网站首页 ASCLL码排序 【数据结构与算法】字符比较和排序

【数据结构与算法】字符比较和排序

#【数据结构与算法】字符比较和排序| 来源: 网络整理| 查看: 265

问题1描述 问题 E: 拼数 时间限制: 1.000 Sec  内存限制: 128 MB

题目描述

设有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   问题1分析和解答

本质上是字符的比较和排序,将数字进行字符串读取,用数组存储为一个个字符串,这样便于比较

#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