csp信奥赛C高频考点专项训练之字符串 --【字符串排序】[NOIP 1998 提高组] 拼数题目描述设有n nn个正整数a 1 … a n a_1 \dots a_na1​…an​请将它们连接成一排相邻数字首尾相接组成一个最大的整数。输入格式第一行有一个整数表示数字个数n nn。第二行有n nn个整数表示给出的n nn个整数a i a_iai​。输出格式一个正整数表示最大的整数。输入输出样例 1输入 13 13 312 343输出 134331213输入输出样例 2输入 24 7 13 4 246输出 27424613说明/提示对于全部的测试点保证1 ≤ n ≤ 20 1 \leq n \leq 201≤n≤201 ≤ a i ≤ 10 9 1 \leq a_i \leq 10^91≤ai​≤109。思路分析题目要求将给定的 (n) 个正整数拼接成一个最大的整数。核心思路不能简单地按数值大小排序因为例如13和31213比312小但13312却小于31213。正确的比较方法是对于两个字符串 (a) 和 (b)若 (ab ba)则 (a) 应排在 (b) 前面。具体步骤将每个整数转换为字符串存入数组。使用自定义排序规则比较两个字符串拼接后的大小。排序后按顺序拼接所有字符串输出结果。复杂度排序复杂度O ( n log ⁡ n ⋅ L ) O(n \log n \cdot L)O(nlogn⋅L)其中 (L) 为字符串平均长度n ≤ 20 n \leq 20n≤20时完全可行。代码实现#includebits/stdc.husingnamespacestd;// 自定义比较函数若 ab ba则 a 排在 b 前面boolcmp(string a,string b){returnabba;// 字符串拼接后按字典序比较数字串长度相同时等价于数值比较}intmain(){intn;// 数字个数cinn;vectorstringa(n);// 存储数字的字符串形式for(inti0;in;i){cina[i];// 直接以字符串读入}sort(a.begin(),a.end(),cmp);// 按自定义规则排序string ans;// 存储最终结果for(string s:a){anss;// 拼接}coutans\n;// 输出最大整数return0;}功能分析读入数据从标准输入读取 n 和 n 个正整数以字符串形式存储避免溢出。排序使用sort配合自定义比较函数cmp将字符串按“拼接后数值更大”的规则降序排列。拼接输出将排序后的字符串依次连接得到最大整数并输出。正确性排序规则满足传递性可证明能保证最终拼接结果最大直接拼接字符串避免了整数溢出问题。边界处理输入均为正整数不存在前导零输出直接拼接即可。【完整系列请查看专栏】信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转各种学习资料助力大家一站式学习和提升#includebits/stdc.husingnamespacestd;intmain(){cout########## 一站式掌握信奥赛知识! ##########;cout############# 冲刺信奥赛拿奖! #############;cout###### 课程购买后永久学习不受限制! ######;return0;}【秘籍汇总】完整csp信奥赛C学习资料1、csp/信奥赛C完整信奥赛系列课程永久学习https://edu.csdn.net/lecturer/7901 点击跳转2、CSP信奥赛C竞赛拿奖视频课https://edu.csdn.net/course/detail/40437 点击跳转https://edu.csdn.net/course/detail/41081 点击跳转3、csp信奥赛高频考点知识详解及案例实践CSP信奥赛C动态规划https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转CSP信奥赛C标准模板库STLhttps://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转信奥赛C提高组csp-s知识详解及案例实践https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转4、csp信奥赛冲刺一等奖有效刷题题解信奥赛C普及组CSP-J一等奖通关刷题题单及题解https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转信奥赛C提高组csp-j初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转信奥赛C提高组csp-s初赛复赛真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转5、GESP C考级真题题解GESP(C 一级二级三级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转GESP(C 四级五级六级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转GESP(C 七级八级)真题题解持续更新https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转· 文末祝福 ·#includebits/stdc.husingnamespacestd;intmain(){cout跟着王老师一起学习信奥赛C;cout 成就更好的自己 ;cout csp信奥赛一等奖属于你! ;return0;}