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

问题描述

给定四个字符串 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];//如果当前组合字典序更小,则更新ansif(t<ans) ans = t; }}}}cout<<ans;return 0;
}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【大前端系列20】JavaScript核心:项目实战从零构建任务管理系统

JavaScript核心&#xff1a;项目实战从零构建任务管理系统 系列: 「全栈进化&#xff1a;大前端开发完全指南」系列第20篇 核心: 将JavaScript异步编程、事件循环等核心知识应用于实际项目开发 &#x1f4cc; 引言 在前面的文章中&#xff0c;我们深入探讨了JavaScript中的异步…

STM32单片机的桌面宠物机器人(基于HAL库)

效果 基于STM32单片机的桌面宠物机器人 概要 语音模块&#xff1a;ASR PRO&#xff0c;通过天问block软件烧录语音指令 主控芯片&#xff1a;STM32F103C8T6 使用HAL库 屏幕&#xff1a;0.96寸OLED屏&#xff0c;用来显示表情 4个舵机&#xff0c;用来当作四只腿 底部一个面…

计算机视觉初步(环境搭建)

1.anaconda 建议安装在D盘&#xff0c;官网正常安装即可&#xff0c;一般可以安装windows版本 安装成功后&#xff0c;可以在电脑应用里找到&#xff1a; 2.创建虚拟环境 打开anaconda prompt&#xff0c; 可以用conda env list 查看现有的环境&#xff0c;一般打开默认bas…

SQL Server数据库引擎服务启动失败:端口冲突

问题现象&#xff1a; SQL Server 2022 安装完成后&#xff0c;数据库引擎服务无法启动&#xff0c;日志报错 “TCP 端口 1433 已被占用”&#xff08;ERROR_LOG_SYS_TCP_PORT&#xff09;。 快速诊断 检测端口占用&#xff1a; # 查看 1433 端口占用情况&#xff08;需管理员权…

全局思维与系统思考

最近接到一些需求&#xff0c;1号位希望每个层级的领导者有眼界&#xff0c;胸怀&#xff0c;格局&#xff0c;全局观&#xff0c;这些听起来似乎很抽象&#xff0c;然而它们是每个人、每个团队成长与成功的核心竞争力。那么&#xff0c;如何才能提升这些能力&#xff1f;就像我…

区间有关的贪心解题记录435无重叠区间452用最少数量的箭引爆气球

无重叠区间我的想法是开一个数组a&#xff0c;遍历给出的区间&#xff0c;在数组a里将对应落在的区间index标记。如果有重复区间就只选择最小的那个区间标记。但是这道题的区间好像很长-5 * 104 < starti < endi < 5 * 104没法用数组a表示总的区间范围。 核心思路是当…

天锐蓝盾终端安全防护——企业终端设备安全管控

从办公室的台式电脑到员工手中的移动终端&#xff0c;这些设备不仅是工作的得力助手&#xff0c;更是企业数据的重要载体。然而&#xff0c;随着终端设备的广泛使用&#xff0c;安全风险也如影随形。硬件设备使用不当、数据随意传输等问题频发&#xff0c;使得企业数据面临着泄…

k8s网络策略

k8s网络策略 k8s网络测试概述查看防火墙策略 k8s网络策略网络访问控制案例&#xff1a;配置k8s网络策略结果验证 k8s网络策略配置示例 k8s网络测试概述 网络策略就是设置防火墙 查看防火墙策略 # 获取当前命名空间下的所有 NetworkPolicy 资源&#xff08;网络策略&#xff0…

leetcode刷题日记——跳跃游戏 II

[ 题目描述 ]&#xff1a; [ 思路 ]&#xff1a; 题目要求在一个一定能达到数组末尾的跳跃数组中(见55题 跳跃游戏)&#xff0c;找出能够跳到末尾的最小次数要求次数最少&#xff0c;那肯定是选取能选步数中最大的数。也就是在当前能够达到的距离中&#xff0c;选择能够达到的…

【Java SE】Java比较器:Comparable、Comparator

目录 1.前言 2.Comaprable接口 2.1 使用细节 2.2 案例演示 3.Comparator接口 3.1 为什么需要Comparator接口 3.2 使用细节 3.3 案例演示 4.Comparable、Comparator对比 1.前言 Java 中的对象&#xff0c;正常情况下&#xff0c;只能进行比较&#xff1a; 或 ! 。不…

(二)创建实例

在这节中&#xff0c; 创建一个实例初始化Vulkan库,指定驱动程序需要使用的应用程序信息 1&#xff0c;要有个实例句柄 VkInstance instance; 2&#xff0c;设置创建Vulkan驱动程序需要的信息&#xff0c; VkInstanceCreateInfo createInfo {}; createInfo.sType VK_STRUCTUR…

HCIP之VRRP

1. VRRP是什么 VRRP&#xff08;Virtual Router Redundancy Protocol&#xff0c;虚拟路由冗余协议&#xff09;是一种用于提高网络可靠性的容错协议。它通过将多台路由器虚拟成一台虚拟路由器&#xff0c;实现网关的冗余备份。当主路由器&#xff08;Master&#xff09;出现故…

高效内存管理:x86-64架构中的分页机制

在 x86-64 架构的世界里&#xff0c;内存分页机制扮演着举足轻重的角色&#xff0c;它就像是一座桥梁&#xff0c;连接着虚拟地址与物理地址。简单来说&#xff0c;内存分页机制就是将线性地址&#xff08;也就是虚拟地址&#xff09;切分成一个个固定大小的页&#xff0c;并把…

【软件工程】填空题

真题 2024-10 16.数据字典是用来定义_____中各个成分的具体含义的。 17.模块设计的基本原则是_____。 18.接口是操作的一个集合,其中每个操作描述了类、构件或子系统的一个_____。 19.耦合是指不同模块之间_____的度量。 20.RUP的突出特点是,它是一种以用况为驱动的、…

第二卷:海盐城血战(37-72回)正反人物群像

第二卷&#xff1a;海盐城血战&#xff08;37-72回&#xff09;正反人物群像 核心矛盾&#xff1a;寒门军事崛起 → 内部倾轧 → 制度性腐败 主题&#xff1a;通过人物群像展现寒门胜利的虚幻性与权力异化的必然性 一、正派阵营&#xff08;寒门抗争势力&#xff09; 1. 刘裕…

23_js面向对象

上次我们讲运动函数&#xff0c;实际开发不会写运动函数。只是讲一下思想。 现在讲一下用原生js去实现轮播图&#xff0c;引入到对象 首先&#xff0c;要明确 面向对象不是语法&#xff0c;是一个思想&#xff0c;是一种编程模式 面向&#xff1a;朝向 面向对象&#xff1a…

torch不能使用cuda的解决方案

遇到了这样的报错&#xff0c;说明 torch不能使用cuda 反思 我频繁地尝试安装不同的 nvdia 驱动&#xff0c;浪费了很多时间。因为我的错误地认为nvidia会自带cuda&#xff0c;其实cuda需要单独安装。 还有我的torch是cpu版本的&#xff0c;即使nvidia cuda安装了&#xff0…

kettle从入门到精通 第九十三课 ETL之kettle kettle 调用web service接口5种方法,一文彻底搞懂

场景&#xff1a;群里有小伙伴向我求助如何调用web service接口&#xff0c;趁着周末时间&#xff0c;给兄弟们搞demo。 1、本次使用的web service服务接口地址是http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?opgetSupportCityDataset&#xff0c; 此接口根据用户输入…

蓝桥杯 14 天 十五届蓝桥杯 数字诗意

static boolean kkk(long x) {if(x1)return true;else {// 初始化xx为1&#xff0c;用于计算2的幂long xx 1;// 循环60次&#xff0c;检查2的幂是否等于xfor (int i 1; i < 60; i) {xx * 2; // 每次将xx乘以2if (xx x) { // 如果xx等于x&#xff0c;说明x是2的幂&#xf…

异常与捕获

1.C 异常概念 异常是一种处理错误的方式&#xff0c;当一个函数发现自己无法处理的错误时就可以抛出异常&#xff0c;让函数的直接或间接的调用者处理这个错误。 throw&#xff1a;当问题出现时&#xff0c;程序会抛出一个异常。这是通过使用 throw 关键字来完成的。catch&am…