车版热帖:大家对买豪车怎么看

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
[Google级团队]:实时大数据分析领域践行者
北京/深圳-大数据/搜索/机器学习职位
日志易机器大数据行业践行者Web/大数据/机器学习等职位-北京or深圳
把贵司招聘信息放这里
查看: 1614|回复: 8
收起左侧

亚麻,丢棒球,求拍砖

[复制链接] |试试Instant~ |关注本帖
uscgaopeng 发表于 2017-7-10 10:05:26 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类General 博士 全职@Amazon - 内推 - 其他  | Other | 其他

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
看到地里亚麻最近的一道面试题。虽然看起来简单,但是理解题意还是很tricky的。题目如下。怕真面到出问题,我把自己的代码写出来了。求拍砖!谢谢!
Johns play a game in whichhe throws a baseball at various blocks marked with a symbol so asto  knock these out. A score is computed for each throw. The 'lastscore' is the score of the previous throw (or 0 if there is no previous throw)and the total score is the sum of the scores of all the throws. The symbol on ablock can be an integer, a sign or a letter. Each sign or letter represents aspecial rule as given below.

if a throw hits a block marked with an integer,the score for that throw is the value of that integer.. 1point3acres.com/bbs
if a throw hits a block marked with an 'X', thescore for that throw is double the last score
if a throw hits a block marked with an '+', thescore for that throw is the sum of the last two scores.
if a throw hits a block marked with an 'Z', thelast score is removed, as though the last throw never happened. Its valuedoesn't count towards the total score, and the subsequent throws will ingnoreit when computing their values
. 鐣欏鐢宠璁哄潧-

评分

2

查看全部评分

本帖被以下淘专辑推荐:

 楼主| uscgaopeng 发表于 2017-7-10 10:16:04 | 显示全部楼层
compute total score.
代码如下(是字数有限制吗?代码原贴没有显示)
int score(String[] s) {
                int total_score = 0;
                Stack<Integer> nums = new Stack<Integer>();
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                int num;
                for (int i = 0; i < s.length; i++) {. more info on 1point3acres.com
                        if (s[i].charAt(0)!='X'&&s[i].charAt(0)!='Z'&&s[i].charAt(0)!='+') {
                                num = Integer.valueOf(s[i]);
                                total_score = total_score + num;
                                nums.push(num);                               
                        }
                        if (s[i].charAt(0) =='X') {. Waral 鍗氬鏈夋洿澶氭枃绔,
                                if (!nums.isEmpty()) {
                                        int tmp = nums.pop();
                                        total_score = total_score + tmp*2;
                                        nums.push(tmp*2);
                                }

                        }
                        if (s[i].charAt(0) =='Z') {
                                total_score = total_score - (nums.isEmpty()?0:nums.pop());
                                .鏈枃鍘熷垱鑷1point3acres璁哄潧
                        }
                        if (s[i].charAt(0) =='+') {
                                if (!nums.isEmpty()) {
                                        int tmp1 = nums.pop();       
                                        if (!nums.isEmpty()) {
                                                int tmp2 = nums.pop();.鏈枃鍘熷垱鑷1point3acres璁哄潧
                                                total_score = total_score + tmp1 + tmp2;. 鍥磋鎴戜滑@1point 3 acres
                                                nums.push(tmp2);. Waral 鍗氬鏈夋洿澶氭枃绔,
                                                nums.push(tmp1);
                                                nums.push(tmp1+tmp2);. Waral 鍗氬鏈夋洿澶氭枃绔,
                                               
                                        }
                                        else {
                                                total_score = total_score + tmp1;
                                                nums.push(tmp1);
                                                nums.push(tmp1);. from: 1point3acres.com/bbs
                                               
                                        }
                                }                .1point3acres缃
                        }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                        鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                }
                . Waral 鍗氬鏈夋洿澶氭枃绔,
                return total_score;
        }
回复 支持 反对

使用道具 举报

 楼主| uscgaopeng 发表于 2017-7-10 11:15:47 | 显示全部楼层
例子是这样的
输入["5", "-2", "4", "Z","X", 9, "+", "+"]
output: 27
5 : sum = 5
-2 : sum = 5 - 2 = 3
4 : sum = 3 + 4 = 7
Z : sum = 7 - 4 = 3
X : sum = 3 + -2 * 2 = -1 (4被移除了,前一个成绩是-2)
9 : sum = -1 + 9 = 8
+ : sum = 8 + 9 - 4 = 13 (前两个成绩是9和-4)
+ : sum = 13 + 9 + 5 = 27 (前两个成绩是5 和 9)
回复 支持 反对

使用道具 举报

dsxz 发表于 2017-7-10 12:59:19 | 显示全部楼层
uscgaopeng 发表于 2017-7-10 10:16-google 1point3acres
compute total score.
代码如下(是字数有限制吗?代码原贴没有显示)
int score(String[] s) {
.鏈枃鍘熷垱鑷1point3acres璁哄潧
感觉加号这块有bug
如果stack时只有一个数的时候,你把它push了两遍. more info on 1point3acres.com
这样不对,接着来两个Z就要出错

补充内容 (2017-7-10 13:00):
哦,一个Z就出错
回复 支持 反对

使用道具 举报

wans90 发表于 2017-7-10 16:55:36 | 显示全部楼层
dsxz 发表于 2017-7-10 12:59. 1point3acres.com/bbs
感觉加号这块有bug
如果stack时只有一个数的时候,你把它push了两遍
这样不对,接着来两个Z就要出错

沒有吧,第一個push是把pop出來的push回去,第二個push是把剛剛加進去totalscore的push進去
回复 支持 反对

使用道具 举报

 楼主| uscgaopeng 发表于 2017-7-10 21:07:55 | 显示全部楼层
dsxz 发表于 2017-7-10 12:59. 1point 3acres 璁哄潧
感觉加号这块有bug
如果stack时只有一个数的时候,你把它push了两遍.鏈枃鍘熷垱鑷1point3acres璁哄潧
这样不对,接着来两个Z就要出错

你说一个Z就出错,能讲一下细节吗? 因为我用["5", "-2", "4", "Z","X", 9, "+", "+"] 调试的,只有一个Z,也得到结果了
回复 支持 反对

使用道具 举报

dsxz 发表于 2017-7-10 23:55:47 | 显示全部楼层
uscgaopeng 发表于 2017-7-10 21:07
你说一个Z就出错,能讲一下细节吗? 因为我用["5", "-2", "4", "Z","X", 9, "+", "+"] 调试的,只有一个Z ...

试下 “5”, “+",  "Z"……不太确定,但是觉得你连着push两次是有问题的
回复 支持 反对

使用道具 举报

shufezq 发表于 2017-7-11 03:32:00 | 显示全部楼层
我觉得lz的code正确性没问题,不过可以再简洁一点,比如说有的地方的stack用peek可能会更好
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-4-23 21:45

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表