0828-T2 超级幸运数

0828-T2 超级幸运数

题意

给出数字 AB。求出以 AB 为两端的数的最小值。

思路

ABBA 两种情况。

xy 拼接时,x 的尾部和 y 的头部可以合并。

132231 合并出来为 13231

求出 xy 的最长公共前后缀即可,合并时去除。

代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll to_int(string s) {
	ll res = 0;
	for (auto c : s) res = res * 10 + c - '0';
	return res;
}
ll solve(int A, int B) {
	string a = to_string(A);
	string b = to_string(B);
	int len = min(a.size(), b.size());
	for (int i = len - 1; i >= 0; i --) {
		if (a.substr(a.size() - i - 1, i + 1) == b.substr(0, i + 1)) {
			string c = a;
			if (i + 1 < b.size()) 
				c = c + b.substr(i + 1);
			return to_int(c);
		}
	}
	string c = a + b;
	return to_int(c);
}
int main() {
 	ll A, B;
	cin >> A >> B;
	ll ans1 = solve(A, B);
	ll ans2 = solve(B, A);
	cout << min(ans1, ans2);
	return 0;
}
posted @   maniubi  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· 2分钟学会 DeepSeek API,竟然比官方更好用!
· .NET 使用 DeepSeek R1 开发智能 AI 客户端
· DeepSeek本地性能调优
· 一文掌握DeepSeek本地部署+Page Assist浏览器插件+C#接口调用+局域网访问!全攻略
点击右上角即可分享
微信分享提示