竞赛讨论区 > 提供一种巧妙的回文子串构造方法
头像
Estrella_pi
编辑于 2025-12-22 21:14 浙江
+ 关注

提供一种巧妙的回文子串构造方法

题目链接:https://ac.nowcoder.com/acm/problem/271164

注意到 k <= n / 2 ,显然 2 * k <= n 。

不妨就构造一种 aa bb cc dd...的字符串,总共含有 k 个长度为 2 的回文子串。

那么剩下的 n - 2 * k 个字符就按顺序输出即可,类似 aa bb cc dd efgh... 。

附:如果构造到 'z',就用模运算继续从'a'开始重新构造。

#include <iostream>
#include <string>

using namespace std;

int main() {
	int n, k; cin >> n >> k;
	for(int i = 0; i < k; i++) {
		cout << char('a' + i % 26) << char('a' + i % 26);
	}
	for(int i = k; i < n - k; i++) {
		cout << char('a' + i % 26);
	}
	
	return 0;
}

全部评论

(0) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐