文章目录
这应该是站内相对详细的解题报告吧。
转载思路请@本人。
感想
关于自己
这一次出乎意料拿了第一,可能是别人没发挥好()。
题目感觉还行,难度适中。
有几个题目调了一段时间,还是调出来了。
由于本人要晚修,所以周三晚上那一场参加不了QAQ。
下次加油。
关于平台
题目听说可以自己出了?
如果可以,题目要怎么上传?质量如何确定?
这有待考察。
编程系统还是一如既往。
有个小问题:相同分数和做题时间的两个人要比总时间吗?这感觉没意义。
祝越来越好。
第一题 (难度:简单)
题目描述
对K个不同字符的全排列组成的数组, 面试官从中随机拿走了一个, 剩下的数组作为输入, 请帮忙找出这个被拿走的字符串?比如[“ABC”, “ACB”, “BAC”, “CAB”, “CBA”] 返回 “BCA
100分做法
这一题妥妥找规律。我们发现,当 K > 2 K>2 K>2时,全排列每一个位置的各个字母都出现了偶数次。
所以我们直接统计出每一位上哪个字母出现了奇数次,把这个字母输出即可。
听完是不是觉得豁然开朗?awa
C + + C++ C++代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[15][1005]={
};
int t[105]={
};
int n,X,Y;
int main()
{
scanf("%d",&n);
X=1;Y=1;
while(n!=Y-1)
{
X++;
Y*=X;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=X;j++)
{
char ch;
cin>>ch;
if(t[0]<X)t[++t[0]]=(int)(ch);//把出现过的字符记录
a[j][int(ch)]^=1;//找奇数
}
}
if(n==1)return 0*printf("%c%c",t[2],t[1]);//K=2
for(int i=1;i<=X;i++)
{
for(int j=1;j<=t[0];j++)
{
if(a[i][t[j]]==1)
{
printf("%c",char