题目链接: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) 回帖