牛客春招刷题训练营 - 2025.3.21 题解

活动地址:牛客春招刷题训练营 - 编程打卡活动

Easy 字符串加密

简要题意

给一个字符串,对其去重,依次补全所有字母,视作一个密码表。

之后根据密码表加密一个字符串。

Solution

记录一下每个字母是否出现,模拟题目的步骤就好。

Code

void R()
{
	array<bool,26> vis={};
	string s,t,p;
	cin>>s>>t;
	for (char c:s)
		if (!vis[c-'a'])
		{
			vis[c-'a']=1;
			p.push_back(c);
		}
	for (int i=0;i<26;i++)
		if (!vis[i])
			p.push_back(i+'a');
	for (char &c:t)
		c=p[c-'a'];
	cout<<t;
	return;
}

Medium 从单向链表中删除指定值的节点

简要题意

模拟一个链表的插入和删除。

Solution

数据范围很小,直接用 vector 模拟即可。

Code

void R()
{
	int n,h;
	vector<int> v;
	cin>>n>>h;
	v.push_back(h);

	for (int i=1;i<n;i++)
	{
		int a,b;
		cin>>a>>b;
		v.insert(next(find(v.begin(),v.end(),b)),a);
	}

	int k;
	cin>>k;
	v.erase(find(v.begin(),v.end(),k));

	for (int x:v) cout<<x<<' ';
	return;
}

Hard 走方格的方案数

简要题意

的非降路径数。

Solution

相当于你要在 步中选出 步横着走,答案就是

Code

void R()
{
	int n,m;
	cin>>n>>m;

	auto fac=[&](int x)->int
	{
		int res=1;
		while (x)
		{
			res*=x;
			x--;
		}
		return res;
	};

	auto binom=[&](int n,int m)->int
	{
		return fac(n)/fac(m)/fac(n-m);
	};

	cout<<binom(n+m,n)<<'\n';
	return;
}
#牛客春招刷题训练营#
全部评论

相关推荐

今天 11:41
门头沟学院 Java
点赞 评论 收藏
分享
Rena1ssanc...:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务