一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

一亩三分地官方iOS手机应用下载
查看: 509|回复: 3
收起左侧

Square 面经

[复制链接] |试试Instant~ |关注本帖
rubyj 发表于 2016-11-30 06:12:04 | 显示全部楼层 |阅读模式

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

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

x
小众square 面经。
地里没出现过,但不难。
[size=14.6667px]input string(“[size=14.6667px]true & false | true[size=14.6667px]”) return boolean true
[size=14.6667px]

[size=14.6667px]follow up:input string 和 list([size=14.6667px]"a & b | c | true", Arrays.asList("a=true", "b=false", "c=false")[size=14.6667px]),依然output boolean。
[size=14.6667px]他家需要直接跑,所以不能出bug,但我还是没能写到一遍bug gree,功力还需要加强啊。
[size=14.6667px]攒人品~

评分

1

查看全部评分

jinhaobu 发表于 2016-12-16 22:34:32 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
这个是电面吗?
回复 支持 反对

使用道具 举报

 楼主| rubyj 发表于 2017-1-31 03:50:50 | 显示全部楼层
关注一亩三分地微博:
Warald

不好意思,我刚看见...是电面
回复 支持 反对

使用道具 举报

changchang9346 发表于 2017-2-22 11:10:15 | 显示全部楼层
evaluate和follow up的解法,求攒人品

  1. import java.util.Arrays;
  2. import java.util.HashMap;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  3. import java.util.List;
  4. import java.util.Map;

  5. public class Solution {
  6.     static boolean evaluate(String s) {
  7.         boolean res = true;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  8.         char lastOp = '&';

  9.         for (int i = 0; i < s.length(); i++) {
  10.             char ch = s.charAt(i);
  11.             if (Character.isLetter(ch)) {
  12.                 String tmp = ""; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  13.                 while (i < s.length() && Character.isLetter(s.charAt(i))) {
  14.                     tmp += s.charAt(i);
  15.                     i++;
  16.                 }
  17.                 i--; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

  18.                 boolean val = tmp.equals("true");
  19.                 if (lastOp == '&') {
  20.                     res = res && val;
  21.                 } else {
  22.                     res = res || val;
  23.                 }. From 1point 3acres bbs
  24.             } else if (ch == '&' || ch == '|') {
  25.                 lastOp = ch;
  26.             } else if (ch == ' ') {
  27.                 continue;
  28.             }
  29.         }
  30.         return res; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  31.     }

  32.     static boolean evaluate2(String s, List<String> lst) {
  33.         Map<String, Boolean> map = new HashMap<>();
  34.         for (String str : lst) {
  35.             String[] split = str.split("=");-google 1point3acres
  36.             if (split[1].equals("true")) {
  37.                 map.put(split[0], true);
  38.             } else { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  39.                 map.put(split[0], false);-google 1point3acres
  40.             }. 1point 3acres 璁哄潧
  41.         }. 1point3acres.com/bbs
  42. . Waral 鍗氬鏈夋洿澶氭枃绔,
  43.         boolean res = true;
  44.         char lastOp = '&';
  45.         for (int i = 0; i < s.length(); i++) {
  46.             char ch = s.charAt(i);
  47.             if (Character.isLetter(ch)) {
  48.                 String tmp = "";
  49.                 while (i < s.length() && Character.isLetter(s.charAt(i))) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  50.                     tmp += s.charAt(i);
  51.                     i++;-google 1point3acres
  52.                 }
  53.                 i--;. 1point3acres.com/bbs
  54.                 boolean val;
  55.                 if (map.containsKey(tmp)) {
  56.                     val = map.get(tmp);
  57.                 } else {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  58.                     val = tmp.equals("true");.1point3acres缃
  59.                 }
  60.                 if (lastOp == '&') {
  61.                     res = res && val;
  62.                 } else {
  63.                     res = res || val;
  64.                 }
  65.             } else if (ch == '&' || ch == '|') {
  66.                 lastOp = ch;
    .鏈枃鍘熷垱鑷1point3acres璁哄潧
  67.             } else if (ch == ' ') {
  68.                 continue;
  69.             }
  70.         }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  71.         return res;

  72.     }.鏈枃鍘熷垱鑷1point3acres璁哄潧

  73.     public static void main(String args[]) {
  74.         System.out.println(evaluate("true | false & true"));
  75.         System.out.println(evaluate("true & false & true"));
  76.         System.out.println(evaluate("true & false | true"));

  77.         System.out.println(evaluate2("a & b | c | true", Arrays.asList("a=true", "b=false", "c=false")));
  78.     }
  79. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-4-26 09:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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