0
点赞
收藏
分享

微信扫一扫

PAT (Basic Level) Practice (中文)- 1052 卖个萌(20 分)


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:

  • 注意当中有越界的下标。
  • 注意 “\\” 转义字符。
  • 题目有些字符输出不了,没事,其他正常即可。

AC 代码

#include<bits/stdc++.h>
#include<cmath>

#define mem(a,b) memset(a,b,sizeof a);
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

vector<string> v[5],tv;
string ts;

int main()
{
int n=3;
string s;
char c;
for(int i=0;i<n;i++)
{
getline(cin,s);
int len=s.length();
for(int i=0,f=0;i<len;i++)
{
c=s[i];
if(c==']')
{
f=0;
tv.push_back(ts);
ts.clear();
}
if(f) ts.append(1,c);
if(c=='[') f=1;
}
v[i]=v[n-i+1]=tv;
tv.clear();
}

// for(int i=0;i<5;i++)
// {
// for(int j=0;j<v[i].size();j++)
// {
// printf("%s ",v[i][j].c_str());
// }
// puts("");
// }

scanf("%d",&n);
int a;
while(n--)
{
int f=1; ts.clear();
for(int i=0;i<5;i++)
{
scanf("%d",&a);
if(!f) continue;
if(a>v[i].size() || a<=0){f=0; continue;}
if(i==1) ts.append(1,'(');
ts.append(v[i][a-1]);
if(i==3) ts.append(1,')');
}

if(!f) puts("Are you kidding me? @\\/@");
else printf("%s\n",ts.c_str());
}

return 0;
}


举报

相关推荐

0 条评论