📣 独立日限时特惠: VIP通行证立减$68
回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

Cousera OA 2题 (90分钟)06/29/17

全局:

2017(7-9月) 码农类General 硕士 全职@coursera - 网上海投 - 在线笔试  | | Fail | 应届毕业生

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

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

x
大概6.20左右海投的一个cousera的职位,拿了OA,今天下午做的,一共2题,90分钟完成。
楼主第一题过了,第二题一开始想叉了,最后没做完,应该是挂了。
第一题忘记截图了,描述如下:
其实和leetcode的subset2差不多,只不过输入数据是一个字符串,例如:“apple,apple,banana,orange”(每个字符串之间都有一个逗号隔开);让你返回所有不重复的组合,放在字符串数组里
例如返回:
{
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
Software Engineer, Data Infrastructure的职位,20号收的OA。不是new graduate的职位。但楼主自己其实是new gradate,也不知道为什么会给OA````Anyway,反正都挂了

上一篇:狗家Fall Intern电面
下一篇:IXL教育公司 OA
🔗
 楼主| wcz199165 2017-6-30 08:27:13 | 只看该作者
全局:
第二题:sorting nested dictionary
我本来截图了的···,可是发现发图好麻烦啊···,就不发图了,我把题意说一下:
给一个字符串,字符串里面的每一个元素都是一个键值对,有key和value,例如 a:apple 或者c:change 值可以嵌套:例如 b:{cb:cranbery,bb:bluberry,bd:{}},嵌套的大括号里面可以为空。
要求按照key将所有的键值对排序,再返回一个新的String;
例如输入字符串:{b:{cb:cranberyy,bb:blueberry},a:apple,c:cherry}
返回字符串:{a:apple,b:{bb:blueberry,cb:cranbery},c:cherry}
即先把内层的{}按key排好序,再以此把外层排序。题目保证输入数据是合法的,开始和结束字符一定是'{' 和 '}'

楼主自己也比较水,拿到这个题刚开始一脸懵逼,感觉应该是递归,后来写了半天也写不对,最后想用着用正常的循环遍历做,后来来不及了。下来之后在codepad上接着写完了,试跑了两组数据没问题,不过不知道最后能不能过,只能作参考:
  1. class Solution {
  2.   public static void main(String[] args) {
  3.     String input = "{b:{cb:{cbz:cbzkk,cba:{cbad:cranberry,cbac{}}},bb:blueberry},a:apple,c:cherry}";
  4.     sort_entries(input);
  5.   }
  6.   /*
  7. * Complete the function below.
  8. */

  9.     static void sort_entries(String input) {
  10.         char[] arr = input.toCharArray();
  11.         int len = arr.length;
  12.         Stack<Integer> stack = new Stack<>();
  13.         for (int i = 0; i < len; i++) {
  14.            if (arr[i] == '{') {
  15.                stack.push(i);
  16.            } else if (arr[i] == '}') {
  17.                 sort(arr, stack.pop() + 1, i - 1);
  18.            }           
  19.         }
  20.       //return arr.toString();
  21.        System.out.println( String.valueOf(arr));

  22.     }
  23.     public static void sort (char[] arr, int start, int end) {

  24.         if (start >= end) {
  25.           return ;
  26.         }         
  27.         List<String> temp = new ArrayList<>();
  28.         StringBuilder builder = new StringBuilder();
  29.         Stack<Integer> stack = new Stack<>();

  30.         for (int i = start; i <= end; i++) {

  31.            if (arr[i] == '{') {
  32.                stack.push(i);
  33.            }
  34.            if (arr[i] == '}') {
  35.                stack.pop();
  36.            }
  37.            if (arr[i] == ',' && stack.isEmpty()){
  38.               temp.add(builder.toString());
  39.               builder = new StringBuilder();
  40.               continue;
  41.            }
  42.             builder.append(arr[i]);
  43.         }
  44.         temp.add(builder.toString());
  45.         Collections.sort(temp);
  46.         int index = start;
  47.         for(int i = 0; i < temp.size(); i++) {
  48.             for(int j = 0; j < temp.get(i).length(); j++) {
  49.                 arr[index++] = temp.get(i).charAt(j);
  50.             }
  51.             if(i != temp.size() - 1) {
  52.               arr[index++] = ',';
  53.             }           
  54.         }   

  55.     }
复制代码




回复

使用道具 举报

🔗
lcq123 2017-6-30 08:30:02 | 只看该作者
全局:
请问楼主是投的是new grad 吗?
我在Coursera官网上貌似没发现new grads的职位呀?  
回复

使用道具 举报

🔗
 楼主| wcz199165 2017-6-30 08:35:38 | 只看该作者
全局:
lcq123 发表于 2017-6-30 08:30
请问楼主是投的是new grad 吗?
我在Coursera官网上貌似没发现new grads的职位呀?

楼主投的是Software Engineer, Data Infrastructure的职位
回复

使用道具 举报

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

本版积分规则

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