首页 > 滴滴0821笔试
头像
会哥哥
编辑于 2020-08-21 21:03
+ 关注

滴滴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; 
}


全部评论

(0) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐