PAT (Basic Level):1052 賣個萌 (20)

題目信息

萌萌噠表情符號通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設(shè)一個表情符號是按下列格式輸出的:
[左手]([左眼][口][右眼])[右手]
現(xiàn)給出可選用的符號集合,請你按用戶的要求輸出表情。
輸入格式:
輸入首先在前三行順序?qū)?yīng)給出手、眼、口的可選符號集。每個符號括在一對方括號[]內(nèi)。題目保證每個集合都至少有一個符號,并不超過10個符號;每個符號包含1到4個非空字符。
之后一行給出一個正整數(shù)K,為用戶請求的個數(shù)。隨后K行,每行給出一個用戶的符號選擇,順序為左手、左眼、口、右眼、右手——這里只給出符號在相應(yīng)集合中的序號(從1開始),數(shù)字間以空格分隔。
輸出格式:
對每個用戶請求,在一行中輸出生成的表情。若用戶選擇的序號不存在,則輸出“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? @/@

分析(柳神)

因為不知道一行有多少個表情,所以用一個string類型的不定長二維數(shù)組vector存儲表情包,以及可以調(diào)用v.size()順便解決不知道一行有多少個表情的問題~~
不定長數(shù)組共三行,分別對應(yīng)輸入用例的三行.只不過在存儲如數(shù)組之前把它們的方括號去掉在存儲.這里可以用string的substr方法實現(xiàn)。然后根據(jù)輸入的數(shù)字序號輸出對應(yīng)的表情。耶耶耶能從這道題里面復(fù)習(xí)好多知識點呢~~~
注意:
1.“Are you kidding me? @/@”的’\’是轉(zhuǎn)義字符,想要輸出’\’就要用’\’表示~
2.第一個測試點里面包含了空格,所以用cin會失敗的,要用getline才能讀入一行字符串~

代碼

#include<iostream>
#include<vector>
using namespace std;
int main(){
    vector<string> v[3];
    for(int i=0;i<3;i++){
        string s;
        getline(cin,s);
        int j=0,k=0;
        while(j<s.length()){
            if(s[j]=='['){
                for(k=0;k<s.length()-j;k++){
                    if(s[k+j]==']'){v[i].push_back(s.substr(j+1,k-1));break;}
                }
            }
            j++;
        }
    }
    int n,a,b,c,d,e;cin>>n;
    for(int i=0;i<n;i++){
        cin>>a>>b>>c>>d>>e;
        if(a>v[0].size()||b>v[1].size()||c>v[2].size()||d>v[1].size()||
        e>v[0].size()||a<1||b<1||c<1||d<1||e<1){
            cout<<"Are you kidding me? @\\/@"<<endl;
            continue;
        }
        cout<<v[0][a-1]<<"("<<v[1][b-1]<<v[2][c-1]<<v[1][d-1]<<")"<<v[0][e-1]<<endl;    
    }
    return 0;
}

測試結(jié)果

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容