天天看點

牛客網題目分析

題目描述:

牛牛想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。

輸入描述:

每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入隻包含大寫英文字母和空格,輸入檔案不超過 50 行,每一行不超過 50 個字元。      

輸出描述:

輸出一行一個數字表示完成所有料理需要多少種不同的材料。
      

輸入示例:

BUTTER FLOUR
HONEY FLOUR EGG      

輸出示例

4

c++代碼:

#include <iostream>

#include <string>

#include <vector>

using namespace std;

int main(){

    vector<string> str;//初始化一個存儲字元串的向量,用于存儲所有配料名稱

    string strr;//定義一個string變量

    cin>>strr;//首先擷取輸入行的第一個配料名稱

    cin.get();//把輸入流中的下一個空格/換行字元讀取

    str.push_back(strr);将擷取的第一個配料名稱存入向量中

    int k = 1;定義一個變量用于記錄配料的種類數,因為已經向向量中放入了一種配料名稱,是以k初始化為1

//通過循環來不斷的向向量中存入新的物料名稱,循環的依據就是每一次從輸入流中得到一種配料名稱之後

//然後通過循環判斷目前的向量中是否有這種配料名稱,如果有的話,直接跳出循環,如果沒有,就把這種原料添加進來

    while(cin>>strr){

        for(int i=0;i<str.size();i++){

            if(str[i]==strr){

                break;

            }

            else if(str[i]!=strr && i==str.size()-1){

                str.push_back(strr);

                k +=1;

            }

        }

        cin.get();

    }

    cout<<k;

    return 0;

}

繼續閱讀