開啟章節選單
490 Rotating Sentences
題目連結
題目敘述
在「旋轉句子(Rotating Sentences)」這題中,你需要將一系列輸入的句子順時針旋轉 90 度。
也就是說,原本從左到右、從上到下輸出的句子,會改成從上到下、從右到左顯示。
輸入說明
你的程式將會接收到最多 100 句輸入句子,每一句最長不超過 100 個字元。
合法的字元包含:換行符號、空格、所有標點符號、數字,以及英文大小寫字母。
(注意:Tab(跳位符)不是合法字元。)
輸出說明
程式的輸出應該是:最後一個句子垂直列印在最左邊的欄位;
而第一個輸入的句子則會出現在最右邊的欄位。
解題思路
先將所有句子都輸入紀錄,並記錄下最長的一個句子長度。
接著透過迴圈將每個句子和最長的句子的長度進行比較,並將短的句子補齊空白。
最後透過迴圈有下到上,左到右列印出結果。
程式碼
#include <bits/stdc++.h> using namespace std; int main() { vector<string> sentences; string input; int max_length=-1,cnt_sentences=0,input_length; while(getline(cin,input)){ sentences.push_back(input); input_length=input.length(); max_length=max(max_length,input_length); cnt_sentences++; } for(int j=0;j<cnt_sentences;j++){ while(max_length>sentences[j].length()){ sentences[j]+=' '; } } for(int i=0;i<max_length;i++){ for(int j=cnt_sentences-1;j>=0;j--){ cout<<sentences[j][i]; } cout<<'\n'; } return 0; }