题解 | #字符串反转#

数据分类处理

https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd?tpId=37&&tqId=21248&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

https://www.nowcoder.com/

#include<stdio.h>
int com(int a,int b);
//a是否包含b,是为1
int com(int a,int b)
{
	int i=0,j=0,l,k;
	int ii=0,jj=0,kk;
	int flag=0;
	int m[1000],n[1000];
	if (a==b)
    	return 1;
	if(a<b)
    	return 0;
	else{
    	//a倒着写入m
    	if(a==0){
       	 m[0]=0;
       	 i=1;
   	 }
    while(a)
    {
        l=a/10;
        k=a%10;
        m[i]=k;
        a=l;
        i++;
    }
    
    //b倒着存入n
    if(b==0){
        n[0]=0;
        j=1;
    }
    while(b)
    {
        l=b/10;
        k=b%10;
        n[j]=k;
        b=l;
        j++;
    }
    
    
    //判断是否从属
        for(ii=0;ii<i-j+1;ii++){
            if(n[0]==m[ii]){
                flag=1;
                for(jj=0;jj<j;jj++)
                {
                    if(n[jj]!=m[ii+jj]){
                        flag=0;
                        break;
                    }
                }
            }
            if(flag==1)
                break;
        }
    return flag;
}
}

int main()
{
	int i,j,k;
	int flag;
	int w;
	int o[1000000],oo=0;
	int count=0;
	int temp;
	int n,n1;
	int l[1000000],r[1000000];

	while((scanf("%d",&n1))!=EOF)
	{
	for(i=0;i<n1;i++)
    	scanf("%d",&l[i]);

	scanf("%d",&n);
	for(i=0;i<n;i++)
    	scanf("%d",&r[i]);



//排序r并去重
for(i=0;i<n-1;i++)
    for(j=i+1;j<n;j++){
        if(r[i]>r[j])
        {
            temp=r[i];
            r[i]=r[j];
            r[j]=temp;
        }
    }
  for(i=1;i<n;i++)
      if(r[i]==r[i-1]){
            for(k=i;k<n-1;k++)
                r[k]=r[k+1];
          n--;
          i--;
        }




//开始判断
for(i=0;i<n;i++){
    for(j=0;j<n1;j++){
        if(com(l[j],r[i])==1){
            flag=1;
            o[oo]=r[i];
            count++;
        }
    }
 for(j=0;j<n1;j++){
        if(count!=0){
        oo++;
        o[oo]=count;
        }
        count=0;
    for(j=0;j<n1;j++){
        if(com(l[j],r[i])==1)
        {
            oo++;
            o[oo]=j;
            oo++;
            o[oo]=l[j];
        }
    }
}
    
    if(flag==1)
    	oo++;
    flag=0;
}
 	printf("%d",oo);
 	for(i=0;i<oo;i++)
   		printf(" %d",o[i]);
	printf("\n");
	oo=0;
	}
}
全部评论

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务