蓝桥杯15届国赛 最小字符串

问题描述

给定一个长度为 N 且只包含小写字母的字符串 S,和 M 个小写字母 c1,c2,...,cM​。现在你要把 M 个小写字母全部插入到字符串 S 中,每个小写字母都可以插入到任意位置。请问能得到的字典序最小的字符串是什么?

输入格式

第一行包含两个整数 N 和 M。第二行包含一个长度为 N 的字符串 S。第三行包含 M 个小写字母 c1,c2,...,cM。

输出格式

输出一个长度为 N+M 的字符串代表答案。

样例输入 1

复制代码
4 3
abbc
cba

样例输出 1

复制代码
aabbbcc

样例输入 2

复制代码
7 3
lanqiao
bei

样例输出 2

复制代码
beilanqiao

评测用例规模与约定

对于 20% 的评测用例,M=1。

对于 100%的评测用例,1≤N,M≤

比较简单,双指针+sort

cpp 复制代码
#include<iostream>
#include<algorithm>
using namespace std;

const int N = 1e5+10;
int n, m;
char c1[N], c2[N];

int main()
{
	cin>>n>>m;
	cin>>c1>>c2;
	
	sort(c2, c2+m);
	
	//比较 c1[i] 和 c2[j],输出较小的字符,并移动相应的指针
	int i=0, j=0;
	while(i<n && j<m)
	{
		if(c1[i] <= c2[j])
		{
			cout<<c1[i];
			i++; 
		}
		else
		{
			cout<<c2[j];
			j++;
		}
	}
	
	//如果 c1 或 c2 有剩余未处理的字符,直接按顺序输出
	while(i<n)
	{
		cout<<c1[i];
		i++;
	}
	while(j<m)
	{
		cout<<c2[j];
		j++; 
	} 
	
	return 0;
}
相关推荐
aqiu1111115 天前
【数位 DP / 记忆化搜索】蓝桥云课 - 光轨区的 AI 数 题解
c++·算法·蓝桥杯·数位dp
aqiu1111117 天前
【并查集 / 图论】蓝桥云课 - 魔法大陆的城市群(求无向图连通块数量)题解
蓝桥杯·图论
aqiu1111118 天前
【LeetCode 902】最大为 N 的数字组合 - 详细题解与数位组合思路
数据结构·算法·leetcode·蓝桥杯·数位dp
Chester_19999 天前
CSP202312C.树上搜索
开发语言·数据结构·c++·蓝桥杯·stl
CoderYanger11 天前
A.每日一题:3622. 判断整除性
java·程序人生·算法·leetcode·面试·职场和发展·蓝桥杯
Chester_199912 天前
CSP202303C.LDAP
开发语言·c++·蓝桥杯·stl
Chester_199916 天前
CSP202206C.角色授权
开发语言·数据结构·c++·蓝桥杯
Chester_199916 天前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
Chester_199920 天前
CSP202104C.DHCP服务器
开发语言·程序人生·蓝桥杯
_Narcissus_22 天前
二分算法笔记及例题
数据结构·c++·笔记·算法·蓝桥杯·查找·二分算法