帮我写一个c语言代码:给定字符串长度及两种字符‘R' 和’B的个数,这个字符串由这两种字符组成,如何排列使得个数较多的字符连续出现的个数最少?
时间: 2023-06-06 09:06:12 浏览: 147
c代码-写一个函数,计算字符串 s中最大连续相同的字符个数。例如,若s 为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。int max_same_char( char* s)
以下是根据你的要求所写的 C 语言代码:
#include <stdio.h>
void arrange(int len, int num_r, int num_b) {
char str[len + 1];
int i, j;
if (num_r > num_b) {
for (i = 0; i < num_r; i++) {
str[i * 2] = 'R';
}
j = 1;
i = 0;
while (num_b > 0) {
str[i * 2 + 1] = 'B';
num_b--;
i++;
if (i * 2 == num_r * 2) {
i = 0;
j++;
}
}
} else {
for (i = 0; i < num_b; i++) {
str[i * 2] = 'B';
}
j = 1;
i = 0;
while (num_r > 0) {
str[i * 2 + 1] = 'R';
num_r--;
i++;
if (i * 2 == num_b * 2) {
i = 0;
j++;
}
}
}
str[len] = '\0';
printf("%s\n", str);
}
int main() {
int len, num_r, num_b;
printf("请输入字符串长度: ");
scanf("%d", &len);
printf("请输入字符'R'的个数: ");
scanf("%d", &num_r);
printf("请输入字符'B'的个数: ");
scanf("%d", &num_b);
arrange(len, num_r, num_b);
return 0;
}
阅读全文