网易传媒2017数据挖掘内推编程题

藏宝图

网易传媒2017数据挖掘内推编程题_第1张图片
解题思路
水题

import java.util.Scanner;

public class Main{
    public static void main(String []args){
        Scanner cin=new Scanner(System.in);
        while(cin.hasNext()){
            String a=cin.next();
            String b=cin.next();
            int n=b.length();
            if(n==0){
                System.out.println("Yes");
                continue;
            }
            int begin=0;
            boolean flag=true;
            String tmp=a.substring(0);
            for(int i=0;iif(begin>=a.length()){
                    flag=false;
                    break;
                }
                //System.out.println(begin);
                char c=b.charAt(i);
                tmp=tmp.substring(begin);
                //System.out.println(tmp);
                int idx=tmp.indexOf(c);
                if(idx==-1){
                    flag=false;
                    break;
                }
                begin=idx+1;

            }
            if(flag)System.out.println("Yes");
            else
                System.out.println("No");
        }
    }
}

数列还原

网易传媒2017数据挖掘内推编程题_第2张图片
解题思路
水题
dfs+树状数组

import java.util.Scanner;

public class Main{
    public static int s[];
    public static int N=105;
    public static int res=0;
    public static void add(int n,int val){
        while(npublic static int sum(int n){
        int cnt=0;
        while(n>0){
            cnt+=s[n];
            n-=lowbit(n);
        }
        return cnt;
    }
    public static int lowbit(int x){
        return x&(-x);
    }
    public static void dfs(int idx,int[]flag,int[]a,int n,int k,int cnt){

        //System.out.println("xxx"+cnt);
        if(cnt==0){
            for(int i=0;i" ");
            System.out.println();
            s=new int[N];
            int sum=0;
            for(int i=0;i1);

            }
            //System.out.println(sum);
            if(sum==k)res++;
            return ;
        }if(idx==n)return ;
        //System.out.println(idx);
        for(int i=1;i<=n;i++){
            if(flag[i]==0){
                flag[i]=1;
                a[idx]=i;
                int j;
                for(j=idx+1;jif(a[j]==0)break;
                dfs(j,flag,a,n,k,cnt-1);
                a[idx]=0;
                flag[i]=0;
            }
        }
    }
    public static void main(String []args){
        Scanner cin=new Scanner(System.in);
        int []x={1,2,3,4};
        s=new int[N];
        int sum=0;
        for(int i=0;i1);

        }
        System.out.println(sum);

        while(cin.hasNext()){
            res=0;
            int n=cin.nextInt();
            int k=cin.nextInt();
            int a[]=new int[n];
            int flag[]=new int[n+1];
            int cnt=0;
            for(int i=0;iif(a[i]!=0)flag[a[i]]=1;
                else cnt++;
            }
            int i=0;
            for(i=0;iif(a[i]==0)break;
            }
            dfs(i,flag,a,n,k,cnt);
            System.out.println(res);
        }
    }
}

分田地

网易传媒2017数据挖掘内推编程题_第3张图片
解题思路
没做出来,好像直接暴力可以做出来。。。不懂。。。

你可能感兴趣的:(coding,way,笔试题,数据挖掘,网易,编程)