小米2016/9/23部分笔试题目

原创 2016年12月26日 16:44:23
2016年9月23日, 星期五
1、 中序序列为 ABCDEFG  后序序列为 BDCAFGE   左子树中结点数为多少?(4)
2、用二进制0/1串对字符串 “babacada”进行编码,需要根据这个编码,能够解码回原来的字符串,最适合需要多长的二进制字符串?(14)


3、树的高度 

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

输入

输入的第一行表示节点的个数n1<=n<=1000,节点的编号为0n-1)组成,

下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号

输出

输出树的高度,为一个整数

 

样例输入

5

0 1

0 2

1 3

1 4

样例输出

3

 

Hint


(Java答案)
 package com.company;

import java.util.Scanner;

public class Main {

    public static int n;
    public static int left[] = new int[1000];
    public static int right[] = new int[1000];

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        n = scanner.nextInt();

        for(int i = 0; i < n; i++){
            left[i] = -1;
            right[i] = -1;
        }
        scanner.nextLine();

        boolean ifChild[] = new boolean[n];

        for(int i = 0; i < n - 1; i++) {
             String line = scanner.nextLine();
             int r = Integer.parseInt(line.split(" ")[0]);
             int child = Integer.parseInt(line.split(" ")[1]);
                if (left[r] == -1) {
                    left[r] = child;
                } else {
                    right[r] = child;
                }
            ifChild[child] = true;
        }

        int rootNum = 0;
        for (int i = 0; i < n; i++){
            if(ifChild[i] == false){
                rootNum = i;
                break;
            }
        }

        System.out.println(height(rootNum));
    }
    public static int height(int root){

        if(root == -1){
            return 1;
        }

        int leftheight = height(left[root]);
        int rightheight = height(right[root]);

        return leftheight > rightheight ? leftheight : rightheight + 1;
    }
}





4、句子反转

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割单词之间只有一个空格,前后没有空格。

比如:

1 “hello xiao mi”-> “mi xiao hello”

输入

输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)

输出

对于每个测试示例,要求输出句子中单词反转后形成的句子

 

样例输入

hello xiao mi

样例输出

mi xiao hello



(C++答案)

1.#include <iostream>  

2.#include <string.h>  

3.using namespace std;  

4.int main()  

5.{  

6.    int n,i,j;  

7.    char str[100];  

8.    cin>>n;  

9.    getchar();  

10.     while(n--)  

11.     {  

12.         gets(str);  

13.         int len=strlen(str);  

14.         for(i=0,j=len-1;i<=j;i++,j--)  

15.         {  

16.             char temp=str[i];  

17.             str[i]=str[j];  

18.             str[j]=temp;  

19.         }  

20.         j=0;  

21.         int k,p;  

22.         for(i=0;i<=len;i++)  

23.         {  

24.             if(str[i]==' '||str[i]=='\0')  

25.             {  

26.                 for(k=j,p=i-1;k<p;k++,p--)  

27.                 {  

28.                     char temp=str[k];  

29.                     str[k]=str[p];  

30.                     str[p]=temp;  

31.                 }  

32.                 j=i+1;  

33.             }  

34.         }  

35.         for(i=0;i<len;i++)  

36.             cout<<str[i];  

37.         cout<<endl;  

38.     }  

39.     return 0;  

}  



   

5、电话号码分身

时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替

"ZERO", "ONE", "TWO", "THREE", "FOUR", 

"FIVE", "SIX", "SEVEN", "EIGHT", "NINE"),

然后随机打乱这些字母,所生成的字符串即为电话号码对应的分身。

输入

第一行是一个整数T1<=T<=100)表示测试样例数;接下来T行,每行给定一个分身后的电话号码的分身(长度在310000之间)。

输出

输出T行,分别对应输入中每行字符串对应的分身前的最小电话号码(允许前导0)。

 

样例输入

4

EIGHT

ZEROTWOONE

OHWETENRTEO

OHEWTIEGTHENRTEO

样例输出

0

234

345

0345

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

小米公司2013校园招聘笔试题(研发)+答案

一,填空题 1. 两个人一个速度为a,一个速度为b,相向而行,在距离为s的时候,A放出鸽子,速度为c,鸽子飞到B后,会返回A,遇到A后再返回B。在这期间鸽子飞行的路程 2. (he)的...

小米2017校园招聘笔试题

句子反转 时间限制:C/C++语言 1000MS;其他语言 3000MS 内存限制:C/C++语言 65536KB;其他语言 589824KB 题目描述: 给定一个句子(只包含字母和空格), ...

2013小米笔试题--异形数

题目: 一个数组里,除了三个数是唯一出现的,其余的都出现偶数个,找出这三个数中的任一个。比如数组元素为【1, 2,4,5,6,4,2】,只有1,5,6这三个数字是唯一出现的,我们只需要输出1,5,6中...

美团点评校招笔试题

美团点评1 1:在网络7层协议中,如果想使用UDP协议达到TCP协议的效果,可以在哪层做文章? 因为UDP要达到TCP的功能就必须实现拥塞控制的功能,而且是在路由之间实现,这个在底层明显是做不到拥塞控...

小米笔试题

继MIUI8推出手机分身之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加8取个位,然后使用对应的大写字母代替(“ZERO”,"ONE","TWO"."THREE","FOU...

几个论坛上看到的2015小米笔试题

一、 题目描述  大家对回文串不陌生吧?一个字符串从前看和从后看如果一样的话,就是回文串,比如“上海自来水来自海上”就是一个回文串。现在我们的问题来了,把一个数字看成字符串,问它是不是一个...

小米笔试-二叉树

有一棵合法的二叉树,共有n个节点(1 输入:第一行一个整数n,接下来有n-1行。每行两个整数,以空格分隔,第一个表示父节点编号,第二个表示子节点编号。 输出:树的高度 样例输入: 5 0 1 0 2 ...

详谈高大上的图片加载框架Glide -应用篇

在Android设备上,加载网络图片一直是一个头疼的问题,因为Android设备种类繁多(当然最主要的是配置),处理的稍不周到轻则应用卡顿,严重者就会出现OOM的,导致程序挂掉。现如今网络上有很多图片...

Android性能优化之使用线程池处理异步任务

说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式: 1、继承Thread类 2、实现Runnable接口 虽说这两种方式都可以创建出一个线程,不过它们...

2016小米在线编程题解

题目一世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?思路:很简单啊,异或操作,然后右移算出1的个数。class Solution...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)