#C03L09P04. C03.L09.字符串函数(二).getline、erase、insert()函数.练习题1.棋子(DLOI2019xj)
C03.L09.字符串函数(二).getline、erase、insert()函数.练习题1.棋子(DLOI2019xj)
题目描述
棋盘从左往右分成 N 个格子。棋盘上有且仅有 1 只白色棋子(‘W’表示白旗)和零个或多个黑色棋子(‘B’ 表示黑旗)。在游戏开始时,白棋放置在棋盘的第 1 个格子上,黑棋放置在其他格子上,一个棋子占据一 个格子。没有棋子的格子为空(用‘-’表示)。
FJ 然后开始移动白棋,他的每一步都可以做以下两件事之一(不能做其他事):
-
如果白旗的右邻居格子为空,FJ 会将白棋向右移动一个格子。
-
如果白旗的右邻居格子是黑棋,且该黑棋的右邻居为空,那么 FJ 会将白棋移动到该黑棋的右邻居。
FJ 一直重复上述操作,直到不能移动为止。
给定棋盘的初始状态,请输出游戏的最终状态。
输入格式
一个长度不超过 50 的字符串 S,表示棋盘的初始状态。‘W’表示白旗,‘B’表示黑旗,-’表示空格子。
输出格式
一个字符串,表示棋盘的最终状态。
样例
WB-B-B-
-B-B-BW
W--BB---
--WBB---
W
W
W-B--B---BB-
--B--B--WBB-
相关
在以下作业中: