热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

网易2017校园招聘数据挖掘笔试题

题目一:藏宝图牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串s和t,根据古老的传说,牛牛需要每次都回答

题目一:藏宝图

-------------------------------------------------------------------------------------------------------------------------------------------------------------

牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串 s 和 t,

根据古老的传说,牛牛需要每次都回答 t 是否是 s 的子序列。注意,子序列不要求在原字符串中是连续的,例如串 abc,

它的子序列就有 {空串, a, b, c, ab, ac, bc, abc} 8 种。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

输入描述:每个输入包含一个测试用例。每个测试用例包含两行长度不超过 10 的不包含空格的可见 ASCII 字符串。

-------------------------------------------------------------------------------------------------------------------------------------------------------------

输出描述:输出一行 “Yes” 或者 “No” 表示结果。

--------------------------------------------------------------------------------------------------------------------------------------------------------------

示例1

输入:

x.nowcoder.com

ooo

输出:

yes

-----------------------------------------------------------------------------------------------------------------------------------------------------------

正确的代码:

package problem1;
import java.util.*;

/**
 * Created by Administrator on 2017/9/8.
 */
public class CaoBaoTu_Right {

    public static final void main(String[] args){
        Scanner scan=new Scanner(System.in);
        while(scan.hasNext()){
            String str1=scan.nextLine();
            String str2=scan.nextLine();
            boolean result=isContain(str1,str2);
            if(result){
                System.out.println("Yes");
            }else{
                System.out.println("No");
            }
        }
        scan.close();
    }

    public static boolean isContain(String str1,String str2){
        for(int i=0,index=0;i){
            if(str1.charAt(i)==str2.charAt(index)){
                index++;
                if(index==str2.length()){
                    return true;
                }
            }
        }
        return false;
    }


}
View Code

自己写的代码:

package problem1;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

/**
 * http://blog.csdn.net/a819825294/article/details/52098020
   牛牛拿到了一个藏宝图,顺着藏宝图的指示,牛牛发现了一个藏宝盒,藏宝盒上有一个机关,机关每次会显示两个字符串s和t,根据古老的传说,牛牛需要每次都回答t是否是s的子序列。注意,子序列不要求在原字符串中是连续的,例如串abc,它的子串序列就有{空串,a,b,c,ab,ac,bc,abc}8种。
 */
public class CangBaoTu {
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        //两字符串输入
        String s1 = in.nextLine();
        //System.out.println("s1:"+s1);
        String s2 = in.nextLine();
       // System.out.println("s2:"+s2);

        //创建两个HashMap集合,存放字符串
        HashMap hashMap1 = new HashMap();
        HashMap hashMap2 = new HashMap();

        //统计字符串s1的频率
        for (char c1 : s1.toCharArray()) {
            if (hashMap1.containsKey(c1)) {
                hashMap1.put(c1, hashMap1.get(c1) + 1);
            } else {
                hashMap1.put(c1, 1);
            }
        }

        //统计字符串s2的频率
        for (char c2 : s2.toCharArray()) {
            if (hashMap2.containsKey(c2)) {
                hashMap2.put(c2, hashMap2.get(c2) + 1);
            } else {
                hashMap2.put(c2, 1);
            }
        }

        //判断是否包含
        Set> set1 = hashMap1.entrySet();

        /*for (Map.Entry entry1 : set1) {
              Character key1=entry1.getKey();
              Integer value1=entry1.getValue();
            System.out.println(key1+" "+value1);
        }*/



        Set> set2 = hashMap2.entrySet();
        /*
        for (Map.Entry entry2 : set2) {
            Character key2=entry2.getKey();
            Integer value2=entry2.getValue();
            System.out.println(key2+" "+value2);
        }*/

        String flag="No";
        for (Map.Entry entry1 : set1) {
            for (Map.Entry entry2 : set2) {
                if (entry1.getKey().equals(entry2.getKey()) && (entry1
                        .getValue() == entry2.getValue())) {
                    flag="Yes";
                }
            }
        }

        System.out.println(flag);
    }
}
View Code

 

题目二:下厨房

 -------------------------------------------------------------------------------------------------------------------------------------------------    

 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。

 ------------------------------------------------------------------------------------------------------------------------------------------------

输入描述:

每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。

-----------------------------------------------------------------------------------------------------------------------------------------------

输出描述:

输出一行一个数字表示完成所有料理需要多少种不同的材料。

--------------------------------------------------------------------------------------------------------------------------------------------

输入

BUTTER FLOUR HONEY FLOUR EGG

输出

4

--------------------------------------------------------------------------------------------------------------------------------------------

package problems;

import java.util.HashSet;
import java.util.Scanner;


/**
 * 牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。
 *
 * 测试用例
 *    BUTTER FLOUR
      HONEY FLOUR EGG
 输出:4
 */
public class LiaoLi {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        HashSet hashSet = new HashSet();

        while (in.hasNext()) {
            String str=in.nextLine();
            String[] arr=str.trim().split(" ");
            for(int i=0;i){
                hashSet.add(arr[i]);
            }
        }
        System.out.println(hashSet.size());
        hashSet.clear();
    }
}
View Code

 ------------------------------------------------------------------------------------------------------------------------------------------

题目三:

 ------------------------------------------------------------------------------------------------------------------------------------------

n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。

 ------------------------------------------------------------------------------------------------------------------------------------------

输入描述:

每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。

 ------------------------------------------------------------------------------------------------------------------------------------------

输出描述:

 ------------------------------------------------------------------------------------------------------------------------------------------

输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1

------------------------------------------------------------------------------------------------------------------------------------------

示例1

输入

4

7 15 9 5

输出

3

 ------------------------------------------------------------------------------------------------------------------------------------------

package problem5;

import java.util.Scanner;

/**
 * n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。
 */
public class FeiApple {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int n = scanner.nextInt();
            int[] num = new int[n];
            for (int i = 0; i ) {
                num[i] = scanner.nextInt();
            }
            System.out.println(avg(num));
        }
    }

    public static int avg(int[] num) {
        int average = 0;
        int sum = 0;
        int len = num.length;
        for (int i = 0; i ) {
            sum += num[i];
        }
        average = sum / len;
        if (sum % len != 0) {
            return -1;
        }
        for (int i = 0; i ) {
            int t = Math.abs((num[i] - average));
            if (t % 2 != 0)
                return -1;
        }
        int index = 0;
        for (int i = 0; i ) {
            if (num[i] > average)
                index += (Math.abs(num[i] - average) / 2);
        }
        return index;
    }
}
View Code

 

 


推荐阅读
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
author-avatar
mobiledu2502902687
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有