題目: UVa - 11192 - Group Reverse
題目說明
每筆測資會有一個數字及一個字串,數字代表分割的組數,字串的長度會是該數的倍數,題目要求按照組數輸出其字串反轉的內容。
解題思路
使用 String 讀取測資,將一組大小的字串反轉後放到另一個 String 並輸出,之後再將反轉過的資料 erase()
掉即可。
參考解法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #include <iostream> #include <algorithm>
using namespace std;
int main() { int groupNum, groupSize; string data, output;
while (cin >> groupNum) { if (!groupNum) break;
cin >> data;
groupSize = data.size() / groupNum;
while (data.size() > 0) { reverse(data.begin(), data.begin() + groupSize); output.assign(data.begin(), data.begin() + groupSize); data.erase(0, groupSize);
cout << output; }
cout << endl; } }
|