a011 - 00494 - Kindergarten Counting Game
題目描述
題目要求計算每行文字中的單字數量。單字被定義為連續的英文字母(A-Z 或 a-z)組成的序列。
解題思路
程式碼遍歷輸入的每一行字串。使用一個布林變數 b 來追蹤是否正在單字內部。如果遇到字母,且 b 為 false,則表示找到一個新的單字,計數器 ans 增加。將 b 設為 true,表示現在在單字內部。如果遇到非字母字元,則將 b 設為 false,表示離開了單字。每處理完一行,輸出 ans 的值,並將 ans 重置為 1,以便處理下一行。
複雜度分析
- 時間複雜度: O(n),其中 n 是輸入字串的總長度。程式碼需要遍歷輸入字串的每個字元。
- 空間複雜度: O(1),程式碼只使用了幾個常數大小的變數,不隨輸入大小而變化。
程式碼
#include <iostream>
#include <string>
using namespace std;
int main(){
int ans=0;
bool b=false;
string a;
while(getline(cin,a)){
for(int i=0;i<a.length();i++){
if(a[i]<=122&&a[i]>=97||a[i]>=65&&a[i]<=90){
if(b==false){
ans++;
}
b=true;
}
else{
b=false;
}
}
b=true;
cout << ans << endl;
ans=1;
}
}