注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
45分钟,5,6分钟自我介绍,然后扔出一道题。我在coding的时候面试官在一边吃饭一边喝啤酒。
题目如下,fla去好好想想,哈哈哈哈。
- class Solution {
- Map<String, Object> res = new HashMap<>();
-
- public Map<String, Object> flatten(Map<String, Object> data) {
- helper(res, "", data);
- return res;
- }
-
- private void helper(Map<String, Object> res, String prefix, Object data) {
- if (data instanceof Map) {
- Map<String, Object> mapData = (Map)data;
- for (Map.Entry<String,Object> entry : mapData.entrySet()) {
- helper(res, prefix+entry.getKey(), entry.getValue());
- }
- } else if (data instanceof List) {
- List<Object> listData = (List)data;
- List<Object> flatenListdata = new ArrayList<>();
-
- for (Object listElement : listData) {
- Map<String, Object> listRes = new HashMap<>();
- helper(listRes, "", listElement);
- if(listRes.size() == 1 && listRes.containsKey("")) {
- flatenListdata.add(listRes.get(""));
- } else {
- flatenListdata.add(listRes);
- }
- }
- res.add(prefix, flatenListdata);
- } else {
- res.add(prefix, data);
- }
- }
复制代码
|