May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

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

pocket gem 一面

[复制链接] |试试Instant~ |关注本帖
sophie0815 发表于 2016-10-13 11:40:16 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@PoketGem - 内推 -  |Otherfresh grad应届毕业生

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

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

x
下午六点面的,先是strstr问了下complexity worst case best case  第二题是一道新题 你有json object  json object可能会包含其他json object 或者 json string 然后要求你把他转化成hashtable 给了json的一堆函数啥的 我花了很久才弄懂怎么回事……弄懂就不难写了 基本上recursion 解决。就是大家先去理解一下json object 是咋回事……

评分

4

查看全部评分

本帖被以下淘专辑推荐:

 楼主| sophie0815 发表于 2016-10-14 01:14:57 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
是电面呀  我贴个题把

/*
JSON format

{. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
   "GB": {
      "birmington": {"apple": "20", "google": "50", ….},
      "london": {"apple": "110", "google": "70", ….},
      ….. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
   },
   "US": {
      "new york": {"apple": "100", "google": "200", ….},
      "san francisco": {"apple": "150", "google": "50", ….},
      …..鏈枃鍘熷垱鑷1point3acres璁哄潧
   },
   ….
}. From 1point 3acres bbs

columns: ['country', 'city', 'store', 'rev']. from: 1point3acres.com/bbs

output:
[{"city": "london", "country": "GB", "rev": "70", "store": "google"},
{"city": "london", "country": "GB", "rev": "110", "store": "apple"},
{"city": "birmington", "country": "GB", "rev": "50", "store": "google"},
{"city": "birmington", "country": "GB", "rev": "20", "store": "apple"},
{"city": "san francisco", "country": "US", "rev": "50", "store": "google"}, ….]

m cols n row

input: JSON apiData, String[] columns
output: List<Hashtable<String, String>>


*/

interface JSON {  // base class for json data type
  public JSON(String json);  // constructor
  public String toString();  // convert json data type to string that can be printed. more info on 1point3acres.com
  public String type();  // return type
}. Waral 鍗氬鏈夋洿澶氭枃绔,

class JSONMapping extend JSON { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  public JSON get(String key); // return value corresponding to the key
  public String[] keys(); // return all the keys
  public String type() {return "JSONMapping";}
}

class JSONString extend JSON {
  public String value(); // return the string
  public String type() {return "JSONString";}
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴}
回复 支持 1 反对 0

使用道具 举报

Derek_Han 发表于 2016-10-14 00:21:53 | 显示全部楼层
关注一亩三分地微博:
Warald
感谢楼主分享~求问这个是电面么?还有楼主的第二问~是类似于Nested List那种的么?类似这道题:Flatten Nested List Iterator
回复 支持 反对

使用道具 举报

SiyaoZhu 发表于 2016-10-14 06:46:43 | 显示全部楼层
请问楼主这个hashtable的key是怎么定义的呀?
回复 支持 反对

使用道具 举报

 楼主| sophie0815 发表于 2016-10-14 08:22:01 | 显示全部楼层
SiyaoZhu 发表于 2016-10-14 06:46
请问楼主这个hashtable的key是怎么定义的呀?

key 是String[] columns 的内容
回复 支持 反对

使用道具 举报

小核桃桃 发表于 2016-10-24 04:55:28 | 显示全部楼层
想问一下楼主, 这个题json object格式是固定的么?如果是固定的话感觉用三层for循环是不是就可以了呢?
回复 支持 反对

使用道具 举报

 楼主| sophie0815 发表于 2016-10-25 00:20:40 | 显示全部楼层
小核桃桃 发表于 2016-10-24 04:55
想问一下楼主, 这个题json object格式是固定的么?如果是固定的话感觉用三层for循环是不是就可以了呢?
. more info on 1point3acres.com
Json object里面可以有其他的json object呀 格式不是固定的 你不知道有多少层嵌套哪 不能直接for loop
回复 支持 反对

使用道具 举报

小核桃桃 发表于 2016-10-25 02:04:34 | 显示全部楼层
sophie0815 发表于 2016-10-25 00:20
Json object里面可以有其他的json object呀 格式不是固定的 你不知道有多少层嵌套哪 不能直接for loop

要是不知道的话 要怎么样跟column对上呢? 举个例子哈, 我怎么能知道GB是country, apple是store呢?多谢楼主~~
回复 支持 反对

使用道具 举报

 楼主| sophie0815 发表于 2016-10-25 02:21:53 | 显示全部楼层
你写recursion helper function的时候 加上一个int argument来表明自己到了第几层了呀 然后就知道对应到第几个column了
回复 支持 反对

使用道具 举报

chaojiwan 发表于 2016-10-25 04:36:43 | 显示全部楼层
sophie0815 发表于 2016-10-25 02:21
你写recursion helper function的时候 加上一个int argument来表明自己到了第几层了呀 然后就知道对应到第 ...

你的意思是 m 是变化的,也可能不止4个,但是,apiData是按照m中key的顺序依此嵌套的。
回复 支持 反对

使用道具 举报

 楼主| sophie0815 发表于 2016-10-25 08:37:33 | 显示全部楼层
chaojiwan 发表于 2016-10-25 04:36. visit 1point3acres.com for more.
你的意思是 m 是变化的,也可能不止4个,但是,apiData是按照m中key的顺序依此嵌套的。
. 1point 3acres 璁哄潧
是的 凑字数凑字数
回复 支持 反对

使用道具 举报

steveguang 发表于 2016-10-31 13:03:22 | 显示全部楼层
问下楼主这道题recursion的base是什么?还有map和string的api怎么用?怎么知道什么时候对应map还是string?
回复 支持 反对

使用道具 举报

zli82015 发表于 2017-2-20 08:56:29 | 显示全部楼层
请问楼主,最后的OUTPUT看不太懂。
output: List<Hashtable<String, String>>

给出的OUTPUT例子:
[{"city": "london", "country": "GB", "rev": "70", "store": "google"},
{"city": "london", "country": "GB", "rev": "110", "store": "apple"},
{"city": "birmington", "country": "GB", "rev": "50", "store": "google"},
{"city": "birmington", "country": "GB", "rev": "20", "store": "apple"},. 1point 3acres 璁哄潧
{"city": "san francisco", "country": "US", "rev": "50", "store": "google"}, ….]

output的每个元素 是个JSON, 不是HashTable 啊。
{"city": "london", "country": "GB", "rev": "70", "store": "google"}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-23 02:26

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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