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

一、单项选择题

1、下面关于B+树的叙述中,错误的是( )

A、是多路平衡树

B、可用于文件的索引结构

C、可进行顺序查找

D、关键字指向实际数据块

2、在设计模式中,应该优先使用_____关系从而实现复用( )

A、委派

B、继承

C、创建

D、都不对

3、写出如下代码弹出的结果:

var m= 1, j = k = 0; 
function add(n) { 
    return n = n+1; 
} 
y = add(m); 
function add(n) { 
    return n = n + 3; 
} 
z = add(m); 
console.log(y + "," + z);

y和z的最终结果为:( )

A、2,4

B、4,4

C、2,2

D、报异常

4、在CSS语言中下列哪一项是"右边框"的语法( )

A、border-right-width:

B、border-right-height:

C、border-right:

D、border-top-width:

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

var n=2.toString();
console.log(typeof(n));

A、number

B、String

C、object

D、出错

6、Linux下哪个命令可以用于判断host1主机是否能够访问host2主机的端口( )

A、ping

B、ifconfig

C、telnet

D、netstat

7、有一个算法的递推关系式为:T(n) = 9 T(n / 3) + n,则该算法的时间复杂度为( )

A、O(n^3)

B、O(nlogn)

C、O(n)

D、O(n^2)

8、Linux系统下,用什么命令来查看系统进程( )

A、df

B、ifconfig

C、netstat

D、ps

9、在下列标签中,哪个标签表示最小的标题( )

A、<title></title>

B、<h1></h1>

C、<h6></h6>

D、<h7></h7>

10、下面哪些标签可以在HTML页面中插入GIF动画和MP3声音文件( )

A、<image>和<audio>

B、<image>和<voice>

C、<img>和<voice>

D、<img>和<audio>

二、编程题

1、如果一个整数只能被1和自己整除,就称这个数是素数。

如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666

如果一个数字既是素数也是回文数,就称这个数是回文素数

牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。

2、牛牛有一个长度为n的整数序列,牛牛想对这个序列进行重排为一个非严格升序序列。牛牛比较懒惰,他想移动尽量少的数就完成重排,请你帮他计算一下他最少需要移动多少个序列中的元素。(当一个元素不在它原来所在的位置,这个元素就是被移动了的)

3、有一种有趣的字符串价值计算方式:统计字符串中每种字符出现的次数,然后求所有字符次数的平方和作为字符串的价值

例如: 字符串"abacaba",里面包括4个'a',2个'b',1个'c',于是这个字符串的价值为4 * 4 + 2 * 2 + 1 * 1 = 21

牛牛有一个字符串s,并且允许你从s中移除最多k个字符,你的目标是让得到的字符串的价值最小。


参考答案

一、

1~5:DABCD

6~10:CDDCD

二、

1、

#include<stdio.h>
bool isp(int x){
    if(x==1) return false;
    for(int i=2;i<x;i++)
        if(!(x%i)) return false;
    return true;
}
bool judge(int x){
    int a[1000],c=0,i,j;
    while(x) a[c++]=x%10,x/=10;
    for(i=0,j=c-1;i<j;i++,j--)
        if(a[i]!=a[j]) return false;
    return true;
}
int main(){
    int l,r,i,res=0;
    for(scanf("%d%d",&l,&r),i=l;i<=r;i++)
        if(isp(i)&&judge(i)) res++;
    printf("%d",res);
}

2、

#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int a[100],b[100],n,i,res=0;
    for(scanf("%d",&n),i=0;i<n;i++) scanf("%d",a+i),b[i]=a[i];
    for(sort(a,a+n),i=0;i<n;i++) if(a[i]!=b[i]) res++;
    printf("%d",res);
}

3、

#include<stdio.h>
#include<queue>
#include<map>
using namespace std;
int main(){
    map<char,int> book;
    char s[100];
    int i,k,x,res=0;
    for(scanf("%s%d",s,&k),i=0;s[i]!='\0';i++) book[s[i]]++;
    priority_queue<int> Q;
    map<char,int>::iterator it;
    for(it=book.begin();it!=book.end();it++) Q.push(it->second);
    while(k--) x=Q.top()-1,Q.pop(),Q.push(x);
    while(!Q.empty()) res+=Q.top()*Q.top(),Q.pop();
    printf("%d\n",res);
}
个人资料
Bingo
等级:9
文章:694篇
访问:38.9w
排名: 1
上一篇: 爱奇艺秋季校招前端工程师(第一场)-2018年
下一篇:爱奇艺秋季校招前端工程师(第三场)-2018年
猜你感兴趣的圈子:
爱奇艺笔试面试圈
标签: res、牛牛、素数、++、book、面试题
隐藏