C-小红的字符串构造_牛客周赛 Round 38 (nowcoder.com)
小红希望你构造一个长度为nnn的、仅包含小写字母的字符串,其中恰好有kkk个长度大于1的回文子串。你能帮帮她吗?
自己构造回文,如果要求包含3个回文,则来个abc再翻转复制,abccba,要求保证后面没有回文,再来个xzyxzyxzy,这样长度为3的字符串重复出现不翻转就可以
我们发现对于一个不是回文子串,至少需要3个不同的字符,如abcabc,永远不存在回文子串
#include<bits/stdc++.h>
using namespace std;
string s1="xzy";
string s2="abc";
int main()
{
int n,k;
cin>>n>>k;
string s="";
for(int i=0;i<k;i++)
{
s+=(s1[i%3]);
}
for(int i=k-1;i>=0;i--)
{
s+=s[i];//反转复制
}
for(int i=2*k;i<n;i++)
{
s+=s2[i%3];
}
cout<<s;
return 0;
}