记一次搜狐畅游后台开发笔试

搜狐畅游
畅游公司是中国领先的互联网游戏开发和运营商,致力于多元化网络游戏开发、运营和授权代理。畅游一直以来都以出产“好游戏”为发展战略,多年来在中国网络游戏行业扮演着重要的角色。
流程
简历筛选-笔试-面试
笔试
题目量:一共十八道题目,选择,简答,一道编程。
时间:90min
选择:主要是Java,也有数据库,数据结构。
简答题

  1. ==和equals()的区别?
== 比较的是地址
equals()比较的是内容
  1. Iterator是什么?有什么用?
迭代器
用于遍历集合Collection,因为Collection没有索引,不能用for循环遍历
所以得有迭代器
  1. IRU缓存是?怎么实现?数据结构是?
IRU 页面置换算法
好像是文件操作中使用到,具体不太清楚。
结构一般有两种:链表,数组。
链表访问快,但是增删不好;
数组访问慢,但是增删方便。
一般链表+Hash表可以完美解决。

明两天看看吧QAQ

  1. 查询一个表中所有成绩超过75的同学名字?
    应该嵌套一下就好了
select name 
from student
group by name
having name not in(select name
					from student
					where score > 75)

编程题:字符串转整数
题目说明严重不足,没太懂意思。后续交卷后查询是LeetCode的题。
故作以下说明:

  1. 整型的话直接输出即可,例如:42 输出 42
  2. 带负号的也直接输出即可 例如: -42 输出 -42
  3. 数字带字符的,截取到字符为止 例如: 425 qewwq 输出 425
  4. 无数字或者起始是字符的 输出 0 例如 wqeyi 29 输出 0
  5. 超出整型范围的 输出边界值即可

有了以上信息,代码很容易写出来:

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

应该凉了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值