熱門文章

2025年10月20日 星期一

ZeroJudge 解題筆記:f701. 連接字詞

作者:王一哲
日期:2025年10月20日


ZeroJudge 題目連結:f701. 連接字詞

解題想法


這題沒有說明要讀取的單字數量,用 C++ 寫起來會比較麻煩,用 getline 搭配 stringstream 及 vector 會比較方便。

Python 程式碼


以前測試時使用時間約為 19 ms,記憶體約為 3.3 MB。ZeroJudge 網站好像在 2025年10月更新過,同樣的程式碼使用時間約為 6 ms,記憶體約為 3 MB。
words = list(input().split())
conjuction = input()
n = len(words)
for i in range(n-1):
    print(f"{words[i]:s} {conjuction:s} ", end="")
print(words[-1])

可以用 join 將 " 連接詞 " 與串列 words 的內容接成一個字串再輸出,使用時間約為 7 ms,記憶體約為 3 MB,通過測試。
words = list(input().split())
conjuction = input()
print(f" {conjuction} ".join(words))


C++ 程式碼


使用時間約為 2 ms,記憶體約為 364 kB,通過測試。
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    string s; getline(cin, s);
    stringstream ss; ss << s;
    vector<string> words;
    while(ss >> s) words.push_back(s);
    string conjuction; getline(cin , conjuction);
    int n = (int)words.size();
    for(int i=0; i<n-1; i++) cout << words[i] << " " << conjuction << " ";
    cout << words.back() << "\n";
    return 0;
}


沒有留言:

張貼留言