思路题
#include<iostream>
#include<string>
#include<algorithm>
#include<stdlib.h>
#include<cstring>
using namespace std;
class AB
{
private:
int num[1000];
public:
string createString(int N, int K)
{
memset(num, 0, sizeof(num));
string res;
int N1 = N >> 1;
if (N1*(N-N1)<K)
{
return "";
}
while (K)
{
int k1 = min((N >> 1), K);//把K与n>>1比较,存入数组num中
num[k1] += 1;
K -= k1;
}
for (int i = 1; i <= N >> 1; i++)
{
res += "A";
for (int j = 0; j < num[i]; j++)
res += "B";
}
while(sizeof(res)<N)
{
res.insert(0, "B");//如果RES长度不够,则在RES前插入B(不影响答案数量)
}
return res;
}
};