# String Manipulation# Input/Output

b969 - hello, everyone

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取兩行字串,第一行包含以空格分隔的人名,第二行包含問候語。對於第一行中的每個人名,輸出問候語、逗號、空格以及該人名。

解題思路

程式碼首先讀取兩行字串,分別儲存在 ab 變數中。然後,它遍歷字串 a,使用空格作為分隔符號來提取人名。每次遇到空格或到達字串末尾時,將提取的人名 c 和問候語 b 輸出到螢幕上,並清空 c 以準備提取下一個人名。

複雜度分析

  • 時間複雜度: O(n),其中 n 是輸入字串 a 的長度。
  • 空間複雜度: O(n),其中 n 是輸入字串 a 的長度,因為 c 字串最壞情況下可能儲存整個 a 字串。

程式碼

#include <iostream>
#include <string>
using namespace std;
int main(){
	std::ios::sync_with_stdio(false);
    cin.tie(NULL);
	string a,b,c;
	getline(cin,a);
	getline(cin,b);
	for(int i=0;i<a.length();i++){
		c+=a[i];
		if(a[i]==' '||i==a.length()-1){
			cout << b << ", " << c << endl;
			c.clear();
		} 
	}
}

Discussion