构造字符串

构造字符串

给定一个整数 n,请你构造一个长度为 n 的字符串,要求:

字符串中不含 a,b,c 以外的字符。
字符串中不含长度为 3 的回文子串。
字符串中 c 的数量尽可能少(最好没有)。
输入格式
一个整数 n。

输出格式
一个满足条件的字符串。

如果答案不唯一,则输出任意合理方案均可。

数据范围
1≤n≤2×105。

输入样例1:
2
输出样例1:
aa
输入样例2:
3
输出样例2:
bba

思路

字符串中不含长度为 3 的回文子串 -> "aabb"式
判断奇偶再构造最后一个字符即可

代码

点击查看代码
#include<iostream>
using namespace std;

int main(){
    int n;
    cin >> n;
    string s = "";
    int m = n / 2;
    for(int i = 1; i <= m ; i ++ ){
        if(i & 1)s += "aa";
        else s += "bb";
    }
    if(n & 1){
        if(m & 1)s += 'b';
        else s += 'a';
    }
    cout << s;
}
posted @ 2023-03-08 22:18  Keith-  阅读(29)  评论(0编辑  收藏  举报