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;
}