演算法學習之路|賣個萌
萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符號是按下列格式輸出的:
[左手]([左眼][口][右眼])[右手]
現給出可選用的符號集合,請你按使用者的要求輸出表情。
輸入格式:
輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符號括在一對方括號[]內。題目保證每個集合都至少有一個符號,並不超過10個符號;每個符號包含1到4個非空字元。
之後一行給出一個正整數K,為使用者請求的個數。隨後K行,每行給出一個使用者的符號選擇,順序為左手、左眼、口、右眼、右手——這裡只給出符號在相應集合中的序號(從1開始),數字間以空格分隔。
輸出格式:
對每個使用者請求,在一行中輸出生成的表情。若使用者選擇的序號不存在,則輸出“Are you kidding me? @/@”。
輸入樣例:
╮o <
╯^=<[⊙]
Д_[^] …
4
1 1 2 2 2
6 8 1 5 5
3 3 4 3 3
2 10 3 9 3
輸出樣例:
╮(╯▽╰)╭
<(@Д=)/~
o(^ε^)o
Are you kidding me? @/@
我的思路:
利用scanf格式化存入這些符號。
然後根據給的資料,判斷是否可以成為一個臉,即可。
程式碼如下(有個別沒有AC):
#include<iostream>
#include<stdio.h>
#include<string>
#include<vector>
using namespace std;
int main(){
string a;
vector<string> face[3];//0:手,1:眼,2:口
for(int j=0;j<3;j++){
getline(cin,a);
//cout<<a<<endl;
for(int l=0,r=0,i=0;;i++,l++,r++){
while (a[r]!=`]`){
r++;
if(r>=a.size())
break;
}
if(r>=a.size())
break;
while(a[l]!=`[`){
l++;
}
face[j].push_back(a.substr(l+1,r-l-1));
}
}
// for(int j=0;j<3;j++){
// for(auto a:face[j])
// cout<<a<<" ";
// cout<<face[j].size()<<endl;
// }
int n;
cin>>n;
for(int i=0;i<n;i++){
int tmp[5];
for(int j=0;j<5;j++){
cin>>tmp[j];
}
if(tmp[0]>face[0].size()||tmp[4]>face[0].size()||tmp[1]>face[1].size()||
tmp[3]>face[1].size()||tmp[2]>face[2].size()){
cout<<"Are you kidding me? @\/@"<<endl;
continue;
}
cout<<face[0][tmp[0]-1]<<"(";
cout<<face[1][tmp[1]-1];
cout<<face[2][tmp[2]-1];
cout<<face[1][tmp[3]-1]<<")";
cout<<face[0][tmp[4]-1];
cout<<endl;
}
}
相關文章
- 1052 賣個萌(測試點1)
- 演算法學習之路|個位數統計演算法
- 演算法學習之路|划拳演算法
- 演算法學習之路|寫出這個數(20)演算法
- 演算法學習之路|A除以B演算法
- 演算法學習之路|列印排名演算法
- 演算法學習之路|方格分割演算法
- 演算法學習之路|朋友數演算法
- 演算法學習之路|SpellItRight演算法
- 演算法學習之路|歐幾里得遊戲演算法遊戲
- 演算法學習之路|月餅演算法
- 演算法學習之路|PATRanking演算法
- 演算法學習之路|列印沙漏演算法
- 演算法學習之路|快速排序演算法排序
- 演算法學習之路|結繩演算法
- 演算法學習之路|數零壹演算法
- 演算法學習之路|開學寄語演算法
- 演算法學習之路|說反話演算法
- 演算法學習之路|幼兒園買玩具演算法
- 演算法學習之路|小賭怡情演算法
- 演算法學習之路|影像過濾演算法
- 演算法學習之路|日期問題演算法
- 演算法學習之路|螺旋矩陣演算法矩陣
- 演算法學習之路|選擇題演算法
- 演算法學習之路|字元統計演算法字元
- 演算法學習之路|科學計數法演算法
- 演算法學習之路|PlayOnWords(尤拉道路+dfs)演算法
- 演算法學習之路|舊鍵盤打字演算法
- 演算法學習之路|最簡分數演算法
- 演算法學習之路|檢驗身份證演算法
- 演算法學習之路|愛丁頓數演算法
- 演算法學習之路|最小生成樹——prime演算法演算法
- 強化學習之路一 QLearning 演算法強化學習演算法
- 演算法學習之路|狀態壓縮dp演算法
- 演算法學習之路|棋盤問題(博弈)演算法
- 演算法學習之路|進位制轉換演算法
- 演算法學習之路|宇宙無敵加法器演算法
- 一個iOS開發者學習Android之路iOSAndroid