# Array# String# Output

f266 - Error

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取五個字串,然後按照特定順序輸出這些字串。輸出格式為:第一個字串開始,輸出所有字串;第二個字串開始,輸出從第二個字串到第五個字串;以此類推,直到第五個字串開始,只輸出第五個字串。

解題思路

這題的解題思路非常直接。首先,使用一個字串陣列儲存輸入的五個字串。然後,使用兩個巢狀迴圈來控制輸出。外層迴圈遍歷陣列的每個元素,內層迴圈從外層迴圈的當前元素開始,輸出到陣列的末尾。每次內層迴圈輸出完畢後,輸出一個換行符。

複雜度分析

  • 時間複雜度: O(n^2),其中 n 是字串的數量 (本題為 5)。因為使用了兩個巢狀迴圈,外層迴圈執行 n 次,內層迴圈執行 n-i 次,總共執行約 n^2/2 次。
  • 空間複雜度: O(n),其中 n 是字串的數量 (本題為 5)。因為需要一個字串陣列來儲存輸入的字串。

程式碼

#include <iostream>
using namespace std;
int main(){
	cin.tie(0); ios::sync_with_stdio(false);
	string a[5];
	for(int i=0;i<5;++i)
		cin >> a[i];
	for(int i=0;i<5;++i){
		for(int j=i;j<5;++j)
			cout << a[j] << " ";
		cout << "\n";
	}
}

Discussion