回复: 21
跳转到指定楼层
上一主题 下一主题
收起左侧

2月2日fb电面面经

全局:

2016(7-9月) 码农类General 硕士 全职@meta - 内推 - 技术电面  | | Pass | 应届毕业生

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
昨天进行的电面,今天收到邮件说可以进onsite。非常感谢地里同学的帮助,这里回馈地里,顺带求o
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Popular Interview Questions from Top Companies
ce
follow up3: 还可以进乘方运算

评分

参与人数 4大米 +53 收起 理由
Jester_Z + 10 感谢分享!
夏虫不知雪花 + 30
raccoon + 3 感谢分享!
mzhqlh + 10 感谢分享!

查看全部评分


上一篇:Bloomberg in Princeton
下一篇:Vmware onsite(Propel Program)大家讨论下
推荐
sealove999 2016-4-12 13:57:53 | 只看该作者
全局:
写一点
  1. public class Solution {
  2.   public int calc(String s) {
  3.     s = s.trim().replaceAll("\\s+", "");
  4.     s = s.replaceAll("\\+", " \\+");
  5.     s = s.replaceAll("\\-", " \\-");
  6.     String[] str = s.split(" ");
  7.     int ret = 0;
  8.     for (String ss : str) {
  9.       ret += Integer.parseInt(ss);
  10.     }
  11.     return ret;
  12.   }

  13.   public int followup1(String s) {
  14.     s = s.trim().replaceAll("\\s+", "");
  15.     s = s.replaceAll("\\+", " \\+ ");
  16.     s = s.replaceAll("\\-", " \\- ");
  17.     s = s.replaceAll("\\*", " \\* ");
  18.     s = s.replaceAll("\\/", " \\/ ");
  19.     String[] str = s.split(" ");

  20.     Deque<String> stack = new ArrayDeque<>();
  21.     for (int i = 0; i < str.length; i++) {
  22.       if (str[i].equals("*")) {
  23.         stack.offerLast(
  24.             String.valueOf(Integer.parseInt(stack.pollLast()) * Integer.parseInt(str[++i])));
  25.       } else if (str[i].equals("/")) {
  26.         stack.offerLast(
  27.             String.valueOf(Integer.parseInt(stack.pollLast()) / Integer.parseInt(str[++i])));
  28.       } else {
  29.         stack.offerLast(str[i]);
  30.       }
  31.     }

  32.     int ret = Integer.parseInt(stack.pollFirst());
  33.     while (!stack.isEmpty()) {
  34.       String op = stack.pollFirst();
  35.       int rnd = Integer.parseInt(stack.pollFirst());
  36.       if (op.equals("+")) {
  37.         ret += rnd;
  38.       } else if (op.equals("-")) {
  39.         ret -= rnd;
  40.       }
  41.     }
  42.     return ret;
  43.   }

  44.   public int followup2(String s) {
  45.     int lastOp = -1;
  46.     int lastNeg = -1;

  47.     int ret = 0;
  48.     int lastNum = 0;

  49.     int lastDigit = 0;
  50.     for (int reader = 0; reader <= s.length(); reader++) {
  51.       if (reader == s.length() || !Character.isDigit(s.charAt(reader))) {
  52.         int d = Integer.parseInt(s.substring(lastDigit, reader));
  53.         if (lastOp <= lastNeg) {
  54.           if (lastNeg > 0 && s.charAt(lastNeg) == '-') {
  55.             ret -= d;
  56.           } else {
  57.             ret += d;
  58.           }
  59.           lastNum = d;
  60.         } else {
  61.           if (lastNeg > 0 && s.charAt(lastNeg) == '-') { // pop
  62.             ret += lastNum;
  63.           } else {
  64.             ret -= lastNum;
  65.           }
  66.           if (s.charAt(lastOp) == '*') { // calc
  67.             lastNum *= d;
  68.           } else if (s.charAt(lastOp) == '/') {
  69.             lastNum /= d;
  70.           }
  71.           if (lastNeg > 0 && s.charAt(lastNeg) == '-') { // push
  72.             ret -= lastNum;
  73.           } else {
  74.             ret += lastNum;
  75.           }
  76.         }
  77.         if (reader < s.length()) {
  78.           if (s.charAt(reader) == '+' || s.charAt(reader) == '-') {
  79.             lastNeg = reader;
  80.           } else {
  81.             lastOp = reader;
  82.           }
  83.         }
  84.         lastDigit = reader + 1;
  85.       }
  86.     }
  87.     return ret;
  88.   }

  89.   public int followup3(String s) {
  90.     return 0;
  91.   }


  92.   public static void main(String[] args) {
  93.     Solution s = new Solution();
  94.     System.out.println(s.calc("1-2+3"));
  95.     System.out.println(s.followup1("1-2+3*4"));
  96.     System.out.println(s.followup2("1-2+3*4"));
  97.     System.out.println(s.followup3("1-2+3*4^2"));
  98.   }
  99. }
复制代码
回复

使用道具 举报

推荐
xiaohui5319 2016-3-26 00:41:53 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限 或 查看其他获取积分的方式
Unlock interview details and practice with AI
Popular Interview Questions from Top Companies
回复

使用道具 举报

推荐
 楼主| NR21 2016-2-4 03:07:32 | 只看该作者
全局:
raccoon 发表于 2016-2-4 02:59
求问楼主是类似下面careercup这样的吗,输入是一个string自己parse?
http://www.careercup.com/question?i ...

不是,输入是一个string,比如"1-2+3*4^2"
回复

使用道具 举报

🔗
tltzhsajsdr 2016-2-4 01:41:52 | 只看该作者
全局:
fresh grad全职又开始招啦?
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-4 01:53:07 | 只看该作者
全局:
tltzhsajsdr 发表于 2016-2-4 01:41
fresh grad全职又开始招啦?

我不知道呀。前几天收到hr邮件通知面试。我是10月中旬推得
回复

使用道具 举报

🔗
tltzhsajsdr 2016-2-4 02:05:35 | 只看该作者
全局:
NR21 发表于 2016-2-4 01:53
我不知道呀。前几天收到hr邮件通知面试。我是10月中旬推得

过了这么这么久才面试。。。。不过是个好信号,说明又开始有headcount了呢
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-4 02:10:15 | 只看该作者
全局:
tltzhsajsdr 发表于 2016-2-4 02:05
过了这么这么久才面试。。。。不过是个好信号,说明又开始有headcount了呢

是啊。我本来都已经放弃了。。。直接认为没希望了呢
回复

使用道具 举报

🔗
jemi 2016-2-4 02:28:08 | 只看该作者
全局:
请问投得什么岗位啊?
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-4 02:53:01 | 只看该作者
全局:
jemi 发表于 2016-2-4 02:28
请问投得什么岗位啊?

SDE字数字数
回复

使用道具 举报

🔗
raccoon 2016-2-4 02:59:23 | 只看该作者
全局:
求问楼主是类似下面careercup这样的吗,输入是一个string自己parse?
http://www.careercup.com/question?id=5666882212331520

评分

参与人数 1大米 +3 收起 理由
snowcat1 + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
kungfucop 2016-2-15 13:36:30 | 只看该作者
全局:
constant space这个怎么做?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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