经典算法之数串
来源:互联网 发布:全球程序员节直播视频 编辑:程序博客网 时间:2024/05/01 21:21
设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
输入:正整数个数,正整数数值
输出:拼接的最大值(或最小值)
该问题仔细分析一下其实算是一种比较高端的排序问题,但是不是普通的数值排序,而是将输入的值转换为字符串进行字符串排序,然后拼接。
加入A和B是其中的两个数值,重点是需要比较“A”+“B” 与 “B”+“A”(“”代表字符串比较)
实现起来使用c++的vector比较容易实现,具体code如下:
#include <iostream>#include <string>#include <vector>using namespace std;int main(){ int count; while(cin>>count){ vector<string> inputStrs;//字符串向量 string curInputStr;//输入的字符串 for(int i = 0; i<count; ++i){ cin>>curInputStr; inputStrs.push_back(curInputStr); } for(int shift = 0; shift<inputStrs.size()-1; ++shift){ cout<<"Outside Loop!!!"<<endl; for(int index = 0; index<inputStrs.size()-1-shift; ++index){ cout<<"Inside Loop!!!"<<inputStrs[index]<<inputStrs[index+1]<<endl; if((inputStrs[index]+inputStrs[index+1])<(inputStrs[index+1]+inputStrs[index])){ swap(inputStrs[index],inputStrs[index+1]);//按照字符串链接后从大到小拼接 } } } for(string str: inputStrs){ cout<<str; } cout<<endl; } return 0;}
阅读全文
0 0
- 经典算法之数串
- c语言经典算法之数小孩
- 经典算法(二)之回文数
- 100经典算法之(三)---求水仙花数
- 【经典算法】:蛇形填数
- 算法题-经典水仙花数
- 算法之路二:刘汝佳算法竞赛入门经典 3.3蛇形填数
- 算法之路二:刘汝佳算法竞赛入门经典 组合数和素数判定
- 【白话经典算法系列之十五】“一步千里”之数组找数
- 【白话经典算法系列之十五】“一步千里”之数组找数<转>
- 【白话经典算法系列之十五】“一步千里”之数组找数
- 白话经典算法系列之十五 “一步千里”之数组找数
- 白话经典算法系列之十五 “一步千里”之数组找数
- 经典算法之汉诺塔
- 经典算法之查找
- 经典算法之:贪心算法
- 经典算法之-----贪心算法
- 算法基础之经典算法
- 计算机专业毕业之后是否需要培训
- 利用datatable实现 列的 显示/隐藏
- 实战演练:用gulp+webpack构建用户登录
- 数据结构实验之排序五:归并求逆序数
- 《微服务架构与实践》读书笔记
- 经典算法之数串
- IObit Smart Defrag Pro(磁盘碎片整理工具)官方中文注册版V5.8.0下载 | smart defrag 5激活码
- 将app放到服务器上让用户下载
- 实时操作系统任务调度 DMA 中断向量表和中断处理 Memory
- leetcode 686. Repeated String Match
- 除了美团点评,商家如何获客
- oracle建表
- Map.Entry使用详解
- SQL CREATE TABLE