TBString九度

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


int fun(char *str, int t2, int b2, int tb2, int bt2)   //鸡肋 作用不大,先这样 
{
int t3= 0, b3= 0, tb3= 0, bt3=0;
    int i = 0;
    for(i = 0; i < strlen(str)-1; i++)
    {
    if(str[i] == 'T')
    {
        t3++;

   if(str[i] == 'B')
{
b3++;
}
if(str[i] == 'T' && str[i+1] == 'B')
{
tb3++;
}
if(str[i] == 'B' && str[i+1] == 'T') 
{
bt3++;
}

}
if(str[i] == 'T')
{
t3++;
}
else 
{
b3++;
}

if(t3==t2 && b3==b2 && tb3==tb2 && bt3==bt2)
{
return 1;
}
else{

return 0;
}
}
main()
{
int  flag= 1;
int  t= 0 , b= 0, tb= 0, bt= 0;
int  t1, b1, tb1, bt1;
char str[102]= {0}, str1[102] = {0};
int  i= 0, j= 0;
printf("请输入t, b, tb, bt");

while((scanf("%d %d %d %d", &t1, &b1, &tb1, &bt1)) != EOF)
{
          t = t1, b = b1, tb = tb1, bt = bt1;
          
 if(tb > t || tb > b || bt > t || bt >b)
 {
   printf("-1");
   continue;
 }
 
 if(tb == 0)
          {
           for(i = 0; i < bt; i++)
           {
            strcat(str, "BT");
}
 for(i = 0; i < b -1; i++)
 {
   strcat(str1, "B");
  } 
  strcat(str1, str);
  for(i = 0; i < t-1; i++)
  {
  strcat(str1, "T");
  }
   
 }
 for(i = 0; i < tb; i++)
          {
            strcat(str, "TB");
 }
 t = t -tb;
 b = b -tb; 
 
 if(tb == 1)
 {
  bt = bt;
 }
 else if(tb > 1 && bt >= tb-1)
 {
  bt = bt - (tb -1);
 }
 if(bt == 1 && tb!=0)
 {  
    
    for(i = 0; i < t-1; i++)
    {
      strcat(str1, "T");
    }
    strcat(str1, str);
    for(i = 0; i < b; i++)
    {
    strcat(str1, "B");
}
 
strcat(str1, "T");
 }
 else if(bt == 2) 
 { 
        strcat(str1, "B");
        for(i = 0; i < t-1; i++)
        {
        strcat(str1, "T");
}
    strcat(str1, str);
    
 
    for(i = 0; i < b-1; i++)
    {
    strcat(str1, "B");
    }
    strcat(str1, "T");
 } 
 
 if(bt == 0 )
 {
    for(i = 0; i < t; i++)
{
strcat(str1, "T");
  }  

strcat(str1, str);
for(i = 0; i < b; i++)
{
strcat(str1, "B");
}
 }
 
 if(fun(str1, t1, b1, tb1, bt1))
          {
          puts(str1);
 }
 else
 {
  printf("-1");
 }
 printf("\n");
 memset(str1, 0 , 102);
 memset(str, 0, 102); 
 
 





return 0;
 } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值