天天看點

1052 賣個萌 (20 分)C++

萌萌哒表情符号通常由“手”、“眼”、“口”三個主要部分組成。簡單起見,我們假設一個表情符号是按下列格式輸出的:

左手[右手]

現給出可選用的符号集合,請你按使用者的要求輸出表情。

輸入格式:

輸入首先在前三行順序對應給出手、眼、口的可選符号集。每個符号括在一對方括号 []内。題目保證每個集合都至少有一個符号,并不超過 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.讀入用getline(cin,str),過濾[ ]得到表情,我的電腦讀不進去部分符号,但是隻要程式對了,還是就通過了。

我的輸出:

1052 賣個萌 (20 分)C++

2.使用者的輸入應該>0并且<=表情的總量

3.Are you kidding me? @/@要寫成

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
	string str;
	vector<string>bq[3];
	for (int i = 0; i < 3; i++)
	{
		getline(cin, str);
		for (int j = 0; j < str.size();)
		{
			string s;
			if (str[j] == '[')
				for (int k = j + 1; k < str.size(); k++)
					if (str[k] != ']')
						s += str[k];
					else
					{
						j = k + 1;
						break;
					}
			else
			{
				j++;
				continue;
			}
			bq[i].push_back(s);
		}
	}
	int n,a;
	cin >> n;
	vector<string>output(n);
	for (int i = 0; i < n; i++)
	{
		string s;
		for (int j = 0; j < 5; j++)
		{
			cin >> a;
			if (j ==0||j==4)
			{
				if (a > bq[0].size()||a<=0)
				{
					s = "Are you kidding me? @\\/@";
					break;
				}
				else
				{
					if (j == 0)
						s += bq[0][a - 1] + "(";
					else
						s += ")" + bq[0][a - 1];
				}	
			}
			else if (j == 2)
			{
				if (a > bq[2].size()||a<=0)
				{
					s = "Are you kidding me? @\\/@";
					break;
				}
				else
					s += bq[2][a - 1];
			}
			else
			{
				if (a > bq[1].size()||a<=0)
				{
					s = "Are you kidding me? @\\/@";
					break;
				}
				else
					s += bq[1][a - 1];
			}
		}
		output[i] = s;
	}
	for (int i = 0; i < output.size(); i++)
	{
		if (i<output.size()-1)
			cout << output[i]<<endl;
		else
			cout << output[i];
	}
	return 0;
}