a338: C++ STL exercise
標籤 :
通過比率 : 40% (2 人 / 5 人 ) (非即時)
評分方式:
Tolerant

最近更新 : 2022-12-19 20:48

內容 :

設計一個編碼轉換程式,輸入相對的指令,轉成先對應的數字與結果,印出來。

  • step 1: 從a-z 遍歷,先對每個字母建立一個array,array的建立方式為:將小寫字母轉成int,減去96(按照編碼表)後,從0開始將每個element放入array。最後將該字母與該字母生成的array組成一組,放入map。
    • 如下:
      map<char, vector<int>> azmap;
      char c;
      for (c='a'; c<='z'; c++){
      int now = (int)c - 96;
      vector<int> vect;
      for(int i = 0; i < now; i++){
      cout << i << " ";
      vect.push_back(i);
      }
      cout << endl;
      azmap[c] = vect;
      }
  • step 2: 指令共有n行,每一行有三個元素:token, command, element。token範圍為a-z,決定該行的結果產生要調用哪一個字母的array,command為指令種類,共三種0,1,2分別對應不同的指令, element為command搭配需要搜尋的元素。
    • command == 0: 代表要回傳element在array存在的位置(從0開始算的位置)。
    • command == 1: 要先reverse array,再回傳element在array存在的位置(從0開始算的位置)。
    • command == 2: 要先將array的偶數部分找出來,自成一個陣列,並排序,最後回傳「第element個」元素本人(不是位置)。
    • 以上若有超界情況,則需 return 0
  • step 3: 將所有程序的結果,用空格連成一串,印出來。
輸入說明

一行行指令,以三個元素組成每一行。

  • input解釋:z的array,0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 
輸出說明

每一行產生的結果,依序print出來,每一行的結果間以“空格”串連。

  • output解釋:
    • z 0 6 --> 6在第6個元素
    • z 1 6 --> 反轉後,6在第19個元素
    • z 2 6 --> 擷取出偶數陣列後,第6個元素為10
範例輸入
z 0 6
z 1 6
z 2 6
範例輸出
6 19 10
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (33%): 1.0s , <1K
公開 測資點#1 (33%): 1.0s , <1K
公開 測資點#2 (34%): 1.0s , <1K
提示 :
標籤:
出處:
[編輯: will8467 (will8467) ]
編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」