266B题目网址
题目解析
输入n,t,排队情况s,输出第t次循环后,排队情况
举例:
输入:
5 1
BGGBG
输出:
GBGGB
2.输入的n代表排队的人数,t代表整个循环t次之后再输出结果
3.注意点:
使用while()大循环去控制t次的循环,使用for()内层循环去遍历整个字符串
如果if(s[j]‘B’&&s[j+1]‘G’),则交换s[j]与s[j+1],并且j+2(跳过这两个已经交换过的循环)
如果不是,则下一个j+1去判断
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main()
{int n=0,t=2;char s[50]={'\0'};char c='0';scanf("%d %d",&n,&t);scanf("%s",s);while(t--){for(int j=0;j<strlen(s);){if(s[j]=='B'&&s[j+1]=='G'){c=s[j];s[j]=s[j+1];s[j+1]=c;j+=2;}else{j+=1;}}}printf("%s",s);system("pause");return 0;
}