爱奇艺秋季校招前端工程师(第一场)-2018年

一、单项选择题

1、一个提供NAT服务的路由器在转发一个源IP地址为10.0.0.1、目的IP地址为131.12.1.1的IP分组时,可能重写的IP分组首部字段是( )

Ⅰ.TTL

Ⅱ.片偏移量

Ⅲ.源IP地址

Ⅳ.目的IP地址

A、仅Ⅰ

B、仅I、Ⅱ

C、仅Ⅰ、Ⅱ、III

D、Ⅰ、Ⅱ、Ⅲ、Ⅳ

2、查看系统内存如下:

   [@server ~]# free -g
   total used free shared buffers cached
   Mem: 15 5 9 0 0 2
   -/+ buffers/cache: 3 12
   Swap: 0 0 0

那么程序实际可使用内存有多少( )

A、9G

B、11G

C、12G

D、21G

3、要用 CSS 隐藏一个DIV,下面选项正确的是( )

A、display:none

B、display:inline

C、display:inherit

D、display:block

4、下面的代码输出的结果为:( )

for(var i = 0; i < 10; i++) {
    setTimeout(function() {
        console.log(i);
    }, 1000);
}

A、0-9

B、10个10

C、10个9

D、无限循环

5、下面代码输出的结果为( )

var a = 1;
function f(){
    var a = 2;
    var e = eval;
    e('console.log(a)');
}
f();

A、无输出结果

B、2

C、1

D、编译报错

6、对于字符串"ABCDADA"的二进制哈夫曼编码有多少位( )

A、11

B、12

C、13

D、14

7、下面关于选择排序说法正确的是( )

A、每扫描一遍数组,需要多次交换

B、选择排序是稳定的排序方法,因为时间复杂度是固定的O(n^2)

C、选择排序排序速度一般要比冒泡排序快

D、空间复杂度为O(1)

8、在UML建模中,下列哪个UML的图一般用于描述软件系统的需求( )

A、状态图

B、协作图

C、用例图

D、顺序图

9、在原生JS中,获取一个DOM节点的父节点,下面那个方法是正确的( )

A、element.parent

B、element.parentNode

C、element.parentNode()

D、element.parent()

10、下列标签中哪个表示一个文本区域( )

A、<textarea></textarea>

B、<input type=”textarea”/>

C、<input name=”textarea” type=”text”/>

D、<textarea type=”textarea”></textarea>

二、编程题

1、牛牛有一些排成一行的正方形。每个正方形已经被染成红色或者绿色。牛牛现在可以选择任意一个正方形然后用这两种颜色的任意一种进行染色,这个正方形的颜色将会被覆盖。牛牛的目标是在完成染色之后,每个红色R都比每个绿色G距离最左侧近。牛牛想知道他最少需要涂染几个正方形。

如样例所示: s = RGRGR

我们涂染之后变成RRRGG满足要求了,涂染的个数为2,没有比这个更好的涂染方案。

2、牛牛手中有三根木棍,长度分别是a,b,c。牛牛可以把任一一根木棍长度削短,牛牛的目标是让这三根木棍构成一个三角形,并且牛牛还希望这个三角形的周长越大越好。

3、对于任意两个正整数x和k,我们定义repeat(x, k)为将x重复写k次形成的数,例如repeat(1234, 3) = 123412341234,repeat(20,2) = 2020.

牛牛现在给出4个整数x1, k1, x2, k2, 其中v1 = (x1, k1), v2 = (x2, k2),请你来比较v1和v2的大小。


参考答案

一、

1~5:CCABC

6~10:CDCBA

二、

1、

#include<stdio.h>
#include<string.h>
#define min(a,b) a<b?a:b
int main(){
    char s[100];
    scanf("%s",s);
    int i,j,Min=1e8,n=strlen(s);
    for(i=0;i<n;i++){
        int cnt=0;
        for(j=0;j<i;j++) if(s[j]!='R') cnt++;
        for(j=i;j<n;j++) if(s[j]!='G') cnt++;
        Min=min(Min,cnt);
    }
    printf("%d\n",Min);
}

2、

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int a[3],i;
    for(i=0;i<3;i++) scanf("%d",a+i);
    for(sort(a,a+3);a[2]>=a[0]+a[1];a[2]--);
    printf("%d",a[0]+a[1]+a[2]);
}

3、

import java.util.*;
import java.math.*;
public class Main {
    public static void main(String []args){
        Scanner in=new Scanner(System.in);
        String s1=in.next(),s2,a="",b="";
        int k1=in.nextInt(),k2,i;
        s2=in.next();k2=in.nextInt();
        for(i=0;i<k1;i++) a+=s1;
        for(i=0;i<k2;i++) b+=s2;
        BigInteger x=new BigInteger(a),y=new BigInteger(b);
        System.out.printf("%s",x.compareTo(y)>0?"Greater":x.compareTo(y)<0?"Less":"Equal");
    }
}
个人资料
Bingo
等级:9
文章:694篇
访问:38.9w
排名: 1
上一篇: 2018爱奇艺秋季校招算法工程师(第三场)
下一篇:爱奇艺秋季校招前端工程师(第二场)-2018年
猜你感兴趣的圈子:
爱奇艺笔试面试圈
标签: 牛牛、k2、正方形、涂染、k1、面试题
隐藏