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

2月2日fb电面面经

全局:
我觉得用stack就行 因为没有括号 stack存的东西是常数的
回复

使用道具 举报

🔗
Jester_Z 2016-2-18 07:41:12 | 只看该作者
全局:
楼主请问这道题会出现括号吗
回复

使用道具 举报

🔗
liuminby 2016-2-18 07:45:02 | 只看该作者
全局:
楼主 请问10月份被推后 是一直没有消息还是收到过facebook的据信?多谢
回复

使用道具 举报

🔗
Aprilyn 2016-2-18 09:32:52 | 只看该作者
全局:
额,同10月推得,没消息,学长帮忙重推了下,秒拒
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-19 00:32:38 | 只看该作者
全局:
kungfucop 发表于 2016-2-15 13:36
constant space这个怎么做?

我是用两个integer,一个是至今的总和,一个是上一个数进行的计算
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-19 00:32:49 | 只看该作者
全局:
Jester_Z 发表于 2016-2-18 07:41
楼主请问这道题会出现括号吗

没有括号的
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-19 00:33:02 | 只看该作者
全局:
liuminby 发表于 2016-2-18 07:45
楼主 请问10月份被推后 是一直没有消息还是收到过facebook的据信?多谢

是一直没有消息
回复

使用道具 举报

🔗
 楼主| NR21 2016-2-19 00:33:34 | 只看该作者
全局:
Aprilyn 发表于 2016-2-18 09:32
额,同10月推得,没消息,学长帮忙重推了下,秒拒

没关系,肯定还有更好的机会的。
回复

使用道具 举报

🔗
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
回复

使用道具 举报

🔗
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. }
复制代码
回复

使用道具 举报

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

本版积分规则

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