內容
不知何時開始,一種「黑白棋」的遊戲開始流行,其遊戲規則如下:
一開始會有一排棋子,由黑色 (b) 與白色 (w) 兩種顏色的棋子組成;接著玩者要把最前面的兩顆棋子拿掉,
如果這兩顆棋子同色 (同為黑色或同為白色),就在整排棋子的最後面加上一顆白色棋子,否則加上一顆黑色棋子。
重複這個動作,直到剩下一顆棋子為止,並輸出最後剩下的棋子是甚麼顏色?
輸入說明
第一行一個整數 N (N<=10000),代表測資的筆數。
接下來 N 行,每行一筆測資,由 'b' 與 'w' 構成的字串,代表黑白棋子 (每行<=1000 棋子)。
輸出說明
如果最後一顆棋子為黑色,輸出 b
如果最後一顆棋子為白色,輸出 w
範例輸入
3
wbw
bwwb
wwbwwbb
範例輸出
b
w
b
#include <iostream>
using namespace std;
int N;
string str;
void process(string s) {
s = s.substr(0, s.length()-1);
while (s.length() > 1) {
s = s.substr(2, s.length()-2) + ((s.substr(0,1)==s.substr(1,1))? "w":"b");
}
cout<<s<<endl;
}
void a283_func() {
cin>>N;
for(int i=0;i<=N;i++) {
getline(cin, str);
if(i==0) {continue;}
process(str);
}
}
int main(void) {
a283_func();
}
你這是功課 ... 嗎?
多多動手、動腦比較有幫助
numCase = int(input(''))
for i in range(numCase):
series = input('')
while len(series) > 1:
if series[0] == series[1]:
series += 'w'
else:
series += 'b'
series = series[2:]
print(series)
林口高中??
http://163.20.185.15/ShowProblem?problemid=a283
連字都懶得打 全複製貼上.....