搜狐畅游
畅游公司是中国领先的互联网游戏开发和运营商,致力于多元化网络游戏开发、运营和授权代理。畅游一直以来都以出产“好游戏”为发展战略,多年来在中国网络游戏行业扮演着重要的角色。
流程
简历筛选-笔试-面试
笔试
题目量:一共十八道题目,选择,简答,一道编程。
时间:90min
选择:主要是Java,也有数据库,数据结构。
简答题
- ==和equals()的区别?
== 比较的是地址
equals()比较的是内容
- Iterator是什么?有什么用?
迭代器
用于遍历集合Collection,因为Collection没有索引,不能用for循环遍历
所以得有迭代器
- IRU缓存是?怎么实现?数据结构是?
IRU 页面置换算法
好像是文件操作中使用到,具体不太清楚。
结构一般有两种:链表,数组。
链表访问快,但是增删不好;
数组访问慢,但是增删方便。
一般链表+Hash表可以完美解决。
明两天看看吧QAQ
- 查询一个表中所有成绩超过75的同学名字?
应该嵌套一下就好了
select name
from student
group by name
having name not in(select name
from student
where score > 75)
编程题:字符串转整数
题目说明严重不足,没太懂意思。后续交卷后查询是LeetCode的题。
故作以下说明:
- 整型的话直接输出即可,例如:42 输出 42
- 带负号的也直接输出即可 例如: -42 输出 -42
- 数字带字符的,截取到字符为止 例如: 425 qewwq 输出 425
- 无数字或者起始是字符的 输出 0 例如 wqeyi 29 输出 0
- 超出整型范围的 输出边界值即可
有了以上信息,代码很容易写出来:
def toInt(str):
# 首先截取掉左边空格
s = str.lstrip()
if not s:
return 0
a = s[0]
num = 0
if a.isdigit():
# 如果字符串只由数字组成 直接int即可
flag = 1
num = int(a)
# 判断正负
elif a == '+':
flag = 1
elif a == '-':
flag = -1
else:
return 0
# 循环累加
for i in range(1,len(s)):
j = s[i]
if j.isdigit():
num = num * 10 + int(j)
else:
break
num = flag * num
# 超出整型范围直接返回边界值即可
int_max = 2 ** 31 -1
int_min = -2 ** 31
if num > int_max:
return int_max
elif num < int_min:
return int_min
else:
return num
a = '42'
b = '-42'
c = '425 qewwq '
d = 'eqwe qew 213'
e = '-91283472332'
print(toInt(a)) # 42
print(toInt(b)) # -42
print(toInt(c)) # 425
print(toInt(d)) # 0
print(toInt(e)) # -2147483648
应该凉了