滴滴0821笔试
//滴滴第一题 X前后分别找相同的字符的个数,
第一个答案是个数+1,第二个答案是n-个数
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{
int n;
cin>>n;
char* a=new char[n];
char* b=new char[n];
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<n;i++)
cin>>b[i];
int tmpA[26];
int tmpB[26];
memset(tmpA,0,sizeof(tmpA));
memset(tmpB,0,sizeof(tmpB));
int i=0;
while(a[i]!='X' && i<n)
{
tmpA[a[i]-'A']++;
i++;
}
i++;
while(i<n)
{
tmpB[a[i]-'A']++;
i++;
}
int j=0;
while(b[j]!='X' && j<n)
{
tmpA[b[j]-'A']++;
j++;
}
j++;
while(j<n)
{
tmpB[b[j]-'A']++;
j++;
}
int zuihao=0;
int zuihuai=0;
for(int i=0;i<26;i++)
{
//cout<<tmpA[i]<<" ";
if(tmpA[i]==2)
zuihao++;
}
// cout<<endl;
for(int i=0;i<26;i++)
{
//cout<<tmpB[i]<<" ";
if(tmpB[i]==2)
zuihuai++;
}
// cout<<endl;
cout<<zuihao+1<<" "<<n-zuihuai<<endl;
return 0;
} 第二题 斐波那契蛇 AC
剑指offer面试题29,牛客上更清晰明了的写法,就是我这个
先列出来,在填进去,再输出
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
long long a[81+1];
void func()
{
a[0]=1;
a[1]=1;
for(int i=2;i<81;i++)
{
a[i]=a[i-1]+a[i-2];
}
}
int main()
{
func();
/*
for(int i=0;i<81;i++)
cout<<a[i]<<" ";
cout<<endl;
*/
int n;
cin>>n;
long long **ans=new long long*[n];
for(int i=0;i<n;i++)
{
ans[i]=new long long[n];
}
int up=0;
int down=n-1;
int left=0;
int right=n-1;
int i,j;
int k=n*2-1;
while(true)
{
for(i=left;i<=right;i++)
ans[up][i]=a[k--];
up++;
if(up>down)
break;
for(j=up;j<=down;j++)
ans[j][right]=a[k--];
right--;
if(right<left)
break;
for(i=right;i>=left;i--)
ans[down][i]=a[k--];
down--;
if(down<up)
break;
for(j=down;j>=up;j--)
ans[j][left]=a[k--];
left++;
if(left>right)
break;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cout<<ans[i][j]<<" ";
}
cout<<endl;
}
return 0;
} #滴滴##笔试题目#