j823 - 編程從此變得方便
題目描述
題目要求讀取多行輸入,直到讀取到 "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";
}
}