您的位置:首页 > 理论基础 > 数据结构算法

算法与数据结构——搜狗笔试题

2018-01-26 17:42 288 查看

算法题 64:火眼金睛(搜狗笔试题)

现在我们需要查出一些作弊的问答社区中的ID,作弊有两种:1.A回答了B的问题,同时B回答了A的问题。那么A和B都是作弊。2.作弊ID用户A和作弊ID用户B同时回答了C的问题,那么C也是作弊。已知每个用户的ID是一串数字,一个问题可能有多个人回答。

输入描述:

每组数据第一行为总问题数N(N小于等于200000),第二行开始每行一个问题,第一个数字为提问人ID,第二个数字为回答人数,后面则为所有回答人的ID。(ID均为0-1000000的整数)

输出描述:

第一行为作弊ID数量,第二行开始为从小到大的每行一个作弊ID。

输入例子:

3

1 1 2

2 1 1

3 2 1 2

输出例子:

3

1 2 3

[b][b]*****************************************************************************************************************************[/b][/b]

算法题 78:矩阵元素相乘(搜狗笔试题)

题目:A[n,m]是一个n行m列的矩阵,a[i,j]表示A的第i行j列的元素,定义x[i,j]为A的第i行和第j列除了a[i,j]之外所有元素(共n+m-2个)的乘积,即x[i,j]=a[i,1]a[i,2]…a[i,j-1]…*a[i,m]*a[1,j]*a[2,j]…*a[i-1,j]*a[i+1,j]…*a[n,j],

现输入非负整形的矩阵A[n,m],求MAX(x[i,j]),即所有的x[i,j]中的最大值。

输入描述:

第一行两个整数n和m。之后n行输入矩阵,均为非负整数。

输出描述:

一行输出答案。

输入例子:

3 5

5 1 8 5 2

1 3 10 3 3

7 8 5 5 16

输出例子:

358400

请描述一下你的解题思路。

[b][b]*****************************************************************************************************************************[/b][/b]

算法题 105:满二叉树最大深度(搜狗笔试题)

题目:使用一个长度最大为150的队列,对满二叉树进行广度优先遍历时,能够容纳的二叉树的最大深度为()(第一层深度为1)

A、7

B、8

C、9

D、10

[b][b]*****************************************************************************************************************************[/b][/b]

算法题 146:栈、排序算法、二叉树等6选择题(搜狗2017校招C++工程师笔试题)

1、表达式3*2^(4+2*2-6*3)-5,求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。

A、3,2,8;*^-

B、 3,2,4,2,2;^+-

C、 3,2,4,2,2,;^(+-

D、 3,2,8;*^(-

2、现有N条词以及对应的拼音串,对其排序,排序规则:首先按拼音串的字母序排序,如果拼音串相同,则按当前词所在的顺序排序,下列哪些排序算法符合条件?( )

A、 插入排序

B、 快速排序

C、 堆排序

D、 冒泡排序

3、若二叉树有32个结点且度为1的节点个数有7个,问叶结点有()个?

A、 13

B、 14

C、 12

D、 15

4、下列说法错误的是()

B、 已知一颗二叉树的前序遍历顺序和后序遍历顺序,可以唯一确定这棵二叉树

B、 将一个递归算法改为非递归算法时,通常使用队列作为辅助结构

C、 快速排序和堆排序都是不稳定排序

D、 二分查找法,平均时间复杂度为O(n)

5、下列哪些容器可以使用数组,但不能使用链表来实现?

A、 队列

B、 栈

C、 优先级队列

D、 Map或者Dict

6、请问这是什么数据结构?



A、 B-树

B、 B树

C、 B*树

D、 B+树

[b][b]*****************************************************************************************************************************[/b][/b]

算法题 159:扎金花(搜狐2016招聘笔试题)

题目描述

两个搜狐的程序员加了一个月班,终于放假了,于是他们决定扎金花渡过愉快的假期 。

游戏规则

共52张普通牌,牌面为2,3,4,5,6,7,8,9,10,J,Q,K,A之一,大小递增,各四张; 每人抓三张牌。两人比较手中三张牌大小,大的人获胜。

对于牌型的规则如下:

1.三张牌一样即为豹子

2.三张牌相连为顺子(A23不算顺子)

3.有且仅有两张牌一样为对子 豹子>顺子>对子>普通牌型 在牌型一样时,比较牌型数值大小(如AAA>KKK,QAK>534,QQ2>10104) 在二人均无特殊牌型时,依次比较三张牌中最大的。大的人获胜,如果最大的牌一样,则比较第二大,以此类推(如37K>89Q) 如二人牌面相同,则为平局。

输入描述:

输入两个字符串代表两个玩家的牌(如”10KQ” “354”),先输入的作为玩家1,后输入的作为玩家2

输出描述:

1 代表 玩家1赢 0 代表 平局 -1 代表 玩家2赢 -2 代表不合法的输入

输入例子:

KQ3 3Q9

10QA 6102

5810 7KK

632 74J

10102 K77

JKJ 926

68K 27A

输出例子:

1

1

-1

-1

1

1

-1

[b][b]*****************************************************************************************************************************[/b][/b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: