当前位置: 首页 > news >正文

蓝桥杯省模拟赛 字符串拼接

问题描述

给定四个字符串 a,b,c,d,请将这四个字符串按照任意顺序依次连接拼成一个字符串。

请问拼成的字符串字典序最小是多少?

输入格式

输入四行,每行包含一个字符串。

输出格式

输出一行包含一个字符串,表示答案。

样例输入

LAN
LAN
QIAO
BEI

样例输出

BEILANLANQIAO

评测用例规模与约定

对于所有评测用例,输入的字符串非空串,由大写字母组成,长度不超过 1000。

1. 字典序的基本概念

字典序是一种基于字母或字符顺序的排列方式,类似于字典中单词的排列顺序。

2. 字典序的比较规则
  • 逐字符比较:从第一个字符开始,依次比较对应位置的字符。

  • ASCII码决定顺序:对于两个字符串,从左到右逐字符比较它们的ASCII码值,直到找到第一个不同的字符,此时ASCII码较小的字符所在的字符串字典序较小,如 'A'(65) < 'B'(66))。

  • 长短规则:如果所有字符都相同,则较短的字符串字典序较小。

注意:

不能单纯的比较每个字符串字典序的大小然后拼接

比如 bba 和 bb  bb<bba,而拼接后字典序bbabb < bbbba

所以正确的做法是枚举所有的拼接后的字典序,选出其中最小的

#include<iostream>
#include<string>
using namespace std;

string s[4];
string ans;

int main()
{
	for(int i=0; i<4; ++i) cin>>s[i];
	
	ans = s[0]+s[1]+s[2]+s[3];  //初始化为原始顺序的组合
	
	//遍历所有排列组合  i、j、a、b 分别代表4个字符串的下标。
	for(int i=0; i<4; ++i)
	{
		for(int j=0; j<4; ++j)
		{
			if(j==i) continue;  //不能和第一个重复
			for(int a=0; a<4; ++a)
			{
				if(a==j || a==i) continue;  //不能和前两个重复				
				for(int b=0; b<4; ++b)
				{
					if(b==a || b==i || b==j) continue;  //不能和前三个重复
					
					string t = s[i]+s[j]+s[a]+s[b];
					
					//如果当前组合字典序更小,则更新ans
					if(t<ans) ans = t; 
				}
			}
		}
	}
	
	cout<<ans;
	
	return 0;
}

string s[4];  //字符串数组
string s;  //字符串变量,并且字符串变量可以通过下标访问单个字符

http://www.dtcms.com/a/98890.html

相关文章:

  • 基于Web的交互式智能成绩管理系统设计
  • 【书籍】DeepSeek谈《软件开发的201个原则》
  • 从Manus到OpenManus:AI智能体技术如何重塑未来生活场景?
  • vector的模拟实现01
  • C++运算符重载、类的转换构造函数和类型转换函数的基础练习
  • 【SPP】蓝牙串口协议应用层深度解析:从连接建立到实战开发
  • 解决Dubbo3调用Springcloud接口报No provider available from registry RegistryDirectory
  • 【java基础】Java 泛型
  • IPv6 Over IPv4 自动 6to4 隧道
  • Altium Designer——同时更改多个元素的属性(名称、网络标签、字符串标识)
  • OpenBMC:BmcWeb 生效路由5 优化trie
  • Unity高渲染管线
  • 经济均衡问题建模与求解:单一市场供需平衡分析
  • 蓝桥杯单片机刷题——E2PROM记录开机次数
  • R CSV 文件处理指南
  • 项目如何安装本地tgz包并配置局部registry
  • NixVis 开源轻量级 Nginx 日志分析工具
  • 鸿蒙开发:了解Canvas绘制
  • [C++项目]高并发内存池性能测试
  • 音乐推荐系统的研究与应用
  • JAVA学习*单列模式
  • Linux进程状态补充(10)
  • 18-动规-子序列中的 k 种字母(中等)
  • Python --- .flush() 强制输出缓冲区的数据(缓冲区未满)
  • 代码随想录算法训练营--打卡day3
  • HTML元素小卖部:表单元素 vs 表格元素选购指南
  • 从零开始研发GPS接收机连载——19、自制GPS接收机的春运之旅
  • 《Spring Cloud Eureka 高可用集群实战:从零构建高可靠性的微服务注册中心》
  • 【RabbitMQ】Linux上安装RabbitMQ详细步骤
  • 全球化2.0 | ZStack举办香港Partner Day,推动AIOS智塔+DeepSeek海外实践