# String# Input Output

j823 - 編程從此變得方便

🔗 前往 ZeroJudge 原題

題目描述

題目要求讀取多行輸入,直到讀取到 "stop" 為止。對於每一行輸入,如果該行只包含數字,則輸出 print(輸入),否則輸出 print("輸入")

解題思路

程式碼的主要邏輯是讀取輸入字串,判斷字串是否只包含數字。如果字串只包含數字,則在 print() 函數內直接輸出字串。如果字串包含非數字字符,則在 print() 函數內用雙引號包圍字串後再輸出。程式使用迴圈讀取輸入,直到讀取到 "stop" 為止。

複雜度分析

  • 時間複雜度: O(n*m),其中 n 是輸入行數,m 是每行字串的長度。因為需要遍歷每一行字串來判斷是否只包含數字。
  • 空間複雜度: O(m),其中 m 是每行字串的長度。因為需要儲存每一行輸入字串。

程式碼

#include <bits/stdc++.h>
using namespace std;
string s;
int main(){
	cin.tie(0); ios::sync_with_stdio(0);
	while(cin >> s){
		if(s=="stop")break;
		bool nb=0;
		for(int i=0;i<s.size();++i){
			if(s[i]<'0'||s[i]>'9'){
				nb=1;
				break;
			}
		}
		if(nb)cout << "print(\"" << s << "\")\n";
		else cout << "print(" << s << ")\n";
	}
}

Discussion