南昌哈里科技有限公司新手面试题

南昌哈里科技有限公司

面试题

适用对象:新手程序

一、基础题目(不允许上网查询):

Java:

  1. 如何将String 类型转化为 Integer 类型?

用Integer类中的Valueof()方法实现

  String  zsh =  zsh;

Integer i = Integer.valueOf(zsh);

  1. String 和 StringBuffer 的区别

String是引用类型,底层是被final修饰的字符数组,所以String相当于一个常量,是不可改变的,每拼接一次就会产生一个新的对象,而由于垃圾回收机制的原理,原有的对象不会立马被回收,这是对内存极大的消耗;而StringBuffer 是可变长度的,可以利用append方法向原有对象拼接,然后用toString方法将其转化为String类型;

  1. String[] 如何优雅的判定其中是否包含字符串“aa”

String[] strArr = {“aa”,  ”bb”,“cc”};

boolean res = Arrays.asList(strArr).contains(“aa”)

  1. java多线程同时读写如何处理赃数据,请用java写出最基本的程序

使用synchronized关键字和使用锁

  1. 控制台编程:用擅长的语言,读取屏蔽词库forbidenkeys.txt,并判断从控制台输入的任意字符串是否包含屏蔽词

Path path=Paths.get("C:\\forbidenkeys.txt");
byte[] data = Files.readAllBytes(path);
String result = new String(data,"utf-8");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();

if (result.contains(str)){
    System.out.println("输入关键字包含屏蔽词");
}

  1. 矩形碰撞检测: 定义两个二维的矩形结构体,和一个二维点point,检测二维点落在哪个矩形当中,如何计算两个矩形中心点的距离,如何判断两个矩形是否相交。

  1. 射线检测: 定义一条二维射线和一个二维矩形,判断二维射线是否和矩形产生碰撞

二、算法题目(不允许上网查询):

2.3~2.5】选做一题,能全做完当然更好。

2.1.  [9,20,50,21,5,7,3,0,-40,10,99,555,90000,555,23312389433],冒泡法从小到大排序

2.2.  [9,20,50,21,5,7,3,0,-40,10,99,555,90000,555,23312389433],快速排序法从小到大排序

2.3.  迷宫寻路:设计一张10*10的二维地图数组,其中0代表道路,1代表墙,3代表入口,4代表出口,其中3入口和4出口的位置可以随意设置。写一个寻路算法,计算从入口到出口的最短路径。

参考:

1111311111

100001111

。。。。。

1111111411

2.4. 武将大乱斗:自行设计数据结构,和程序,打印战斗过程和结果。

我方 关羽:

Hp 2000,

攻击力200,

防御力100,

速度 200,

兵种:骑兵,

技能:青囊经(恢复50~100hp),冲锋(造成200~400伤害)

掉落:青囊经(20%掉率)、青龙偃月刀(10%掉率)

敌方 庞德:

Hp 2000,

攻击力200,

防御力100,

速度 100,

兵种:盾兵,

技能:穿山枪(造成200~400伤害),防御(减少伤害10%)

掉落:神盾(20%掉率)、天罡剑(10%掉率)

兵种克制:骑兵会对盾兵多造成15~30%的伤害

技能发动几率:每回合30%

速度越快,越早发动攻击,比如关羽和庞德战斗,关羽先发动攻击,如果战斗持续9回合,关羽攻击庞德6次,庞德攻击关羽3次。自行拟定速度计时器。

参考:

我方关羽入场(hp 2000),敌方庞德入场(hp 2000)

回合1: 关羽 对 庞德 发动普通攻击,庞德损失100hp

回合2: 庞德 对 关羽 使用技能【穿山枪】,关羽损失200hp

回合3: 关羽 对 自身 使用技能 【青囊经】,关羽恢复200hp

回合4: 关羽 对 庞德 使用技能 【冲锋】,庞德损失500hp

.....

关羽经过【15】回合击败庞德,获得经验1000,获得武器【天罡剑】

2.5.  梭哈扑克基础算法:一副标准扑克牌,自定义数据结构, 剔去其中大王小王,进行洗牌、发牌给2个人每人5张、判断牌型,比较大小。

剔牌:removeCards  删除指定牌序号

洗牌:shuffleCards

发牌:dealCards

牌型:getCardsType

  同花顺>四条>满堂红>同花>顺子>三条>二对>单对>散牌

  散牌 0 单对 1,二对 2,三条 3, 。。。。牌型返回参数

比较大小:compareCards,判断哪个玩家手上牌最大

参考:https://baike.baidu.com/item/%E6%A2%AD%E5%93%88/86652?fr=aladdin

牌型比较:同花顺>四条>满堂红>同花>顺子>三条>二对>单对>散牌

数字比较:A>K>Q>J>10>9>8 >7>6>5>4>3>2

花式比较:黑桃>红桃>草花>方块

若牌型一样则利用数字和花色决定胜负。(数字优先)

数字的顺序(大至小)为: A,K,Q,J,10,9,8

花色的顺序(大至小)为: 黑桃 > 红心 > 梅花 > 方块 

  • 进阶题目(自行询问wifi上网查询解决方法):

3.1.  参考 武将数据表hurui计算.xlsx,利用excel表中的数据,推算参数1、参数2、参数3、参数4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值