題目描述:
萌萌噠表情符號通常由「手」、「眼」、「口」三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的:
左手[右手]
現給出可選用的符號集合,請你按使用者的要求輸出表情。
輸入格式:
輸入首先在前三行順序對應給出手、眼、口的可選符號集。每個符號括在一對方括號內。題目保證每個集合都至少有乙個符號,並不超過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? @\/@
注意點:題目的易錯點有三
1.對字串的切割,選出需要的符號資訊。因為不知道符號的個數,筆者使用string容器讀入一行(注意空格的存在),之後根據方括號為判斷依據取出符號放在相應的vector容器中。建議讀者讀入一行之後將收集到的所有符號輸出,進行核對,檢查自己有沒有處理錯誤。
2.@\/@ 中含有轉義字元『\』因此需要在其前面再加上乙個』\』。
3.使用者輸入的序號使用1開始的,因此一定要對其進行判斷,不能超過了容器的範圍,不然出現段錯誤。
請看**:
#include
#include
#include
using
namespace
std;
int main()
face[i].push_back(sign); //將這個符號放入相應的符號集中
}else j++; //如果不是左方括號,那麼看下乙個 }}
int k;
cin>>k; //讀入使用者的請求個數
for(int i=0;iint lh,le,m,re,rh; //分別是左手(left hand)lh,左眼le,口m,右眼re,右手rl。
cin>>lh>>le>>m>>re>>rh;
if(lh>=1&&lh<=face[0].size()&&le>=1&&le<=face[1].size()&&m>=1&&m<=face[2].size()&&re>=1&&re<=face[1].size()&&rh>=1&&rh<=face[0].size())
else
}}
PAT 1052 賣個萌 20分 C 實現
萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要求輸出表情。輸入格式 輸入首先在前三行順序對應給出手 眼 口的可選符號集。每個符號括在一對方括號 內。題目保證每個集合都至少有乙個...
PAT 乙級 1052 賣個萌 20
時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要...
PAT乙級 1052 賣個萌 20分
題目 萌萌噠表情符號通常由 手 眼 口 三個主要部分組成。簡單起見,我們假設乙個表情符號是按下列格式輸出的 左手 左眼 口 右眼 右手 現給出可選用的符號集合,請你按使用者的要求輸出表情。輸入格式 輸入首先在前三行順序對應給出手 眼 口的可選符號集。每個符號括在一對方括號 內。題目保證每個集合都至少...