PEAK6 2020.8.31 OA
两题都做出来。

  1. 情景问题

有一个机场,只有1条无限长的跑道。一个list存飞机降落时间,另一个list存飞机起飞时间。飞机至少停靠1分钟(如果两个list中存在相同时间,则肯定不是同一架飞机)。有一个常数M。如果飞机在跑道上停靠时间超过M,则必须使用一个停机位。另外有一个常数S,表示一开始已经有S个停机位被占用。每当有飞机起飞,如果它之前占用停机位,则该停机位可以立刻再被其他飞机使用。

返回最少需要几个停机位。

我当时使用greedy来解的。第一题做了好久,不知道会不会挂掉平台不包含的隐层case。

  1. String问题。

有三个list。第一个list是需要处理的词。第二个list是同义词,第三个list是反义词。第二个第三个list中每一个string遵循如下格式"key:str1,str2,str3…",表示str1、str2等等是key的同义词或反义词。

定义kangaroo包含如下:给定String a和b。
如果a中不连续包含b,则视为kangaroo包含。
比如"team" kangaroo包含"em".
如果是连续包含,则不能成为kangaroo包含。
比如"team"不kangaroo包含"eam".
但是如果a中可以通过拆分后不连续包含得到b,则视为kangaroo包含。
比如"teamatem" kangaroo包含"eam".

有三种得分方式。第一个list中的单词,kangaroo包含其同义词,加1分;kangaroo包含其反义词,减掉1分;如果一个在第二个list中出现的词(不是key)被两个不同的第一个list中单词kagaroo包含,每出现一次这种pair,加一分。

返回第一个list中单词的总得分。

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;class a {/** Complete the 'findKangarooScore' function below.** The function is expected to return an INTEGER.* The function accepts following parameters:*  1. STRING_ARRAY words*  2. STRING_ARRAY wordsToSynonyms*  3. STRING_ARRAY wordsToAntonyms*/public static int findKangarooScore(List<String> words, List<String> wordsToSynonyms, List<String> wordsToAntonyms) {int res = 0;int n = words.size();if (n <= 0) return 0;HashMap<String, List<String>> synonyms = new HashMap();HashMap<String, List<String>> antonyms = new HashMap();for (String s: wordsToSynonyms) {String[] arr = s.split(":|,");List<String> neighbor = new ArrayList();for (int i = 1; i < arr.length; i++)neighbor.add(arr[i].toLowerCase());synonyms.put(arr[0].toLowerCase(), neighbor);}for (String s: wordsToAntonyms) {String[] arr = s.split(":|,");List<String> neighbor = new ArrayList();for (int i = 1; i < arr.length; i++)neighbor.add(arr[i].toLowerCase());antonyms.put(arr[0].toLowerCase(), neighbor);}HashMap<String, Integer> cousin_cnt = new HashMap();for (int i = 0; i < n; i++) {String key = words.get(i).toLowerCase();if (synonyms.containsKey(key)) {List<String> neighbors = synonyms.get(key);for (String nei: neighbors) {              if (contains(key, nei)) {res++;int cousin_score = cousin_cnt.getOrDefault(nei, 0);cousin_cnt.put(nei, cousin_score+1);res += cousin_score;}}}if (antonyms.containsKey(key)) {List<String> neighbors = antonyms.get(key);for (String nei: neighbors) {              if (contains(key, nei)) {res--;}}}}return res;}public static boolean contains(String s, String pattern) {int m = s.length();int n = pattern.length();if (m <= n) return false;int p = 0;int q = 0;while (p < m && q < n) {if (s.charAt(p) == pattern.charAt(q)) {p++;q++;} elsep++;}if (p >= m && q < n) return false;int idx = s.indexOf(pattern);if (idx < 0) return true;System.out.println("idx is " + idx);int lastChar_lastIdx = s.lastIndexOf(pattern.charAt(n-1));System.out.println("lastChar_lastIdx is " + lastChar_lastIdx);if (idx+n-1 == lastChar_lastIdx)return false;return true;}}
public class Main {public static void main(String[] args) throws IOException {boolean flag = a.contains("devilishly", "evil");System.out.println(flag);BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));int wordsCount = Integer.parseInt(bufferedReader.readLine().trim());List<String> words = IntStream.range(0, wordsCount).mapToObj(i -> {try {return bufferedReader.readLine();} catch (IOException ex) {throw new RuntimeException(ex);}}).collect(toList());int wordsToSynonymsCount = Integer.parseInt(bufferedReader.readLine().trim());List<String> wordsToSynonyms = IntStream.range(0, wordsToSynonymsCount).mapToObj(i -> {try {return bufferedReader.readLine();} catch (IOException ex) {throw new RuntimeException(ex);}}).collect(toList());int wordsToAntonymsCount = Integer.parseInt(bufferedReader.readLine().trim());List<String> wordsToAntonyms = IntStream.range(0, wordsToAntonymsCount).mapToObj(i -> {try {return bufferedReader.readLine();} catch (IOException ex) {throw new RuntimeException(ex);}}).collect(toList());int result = a.findKangarooScore(words, wordsToSynonyms, wordsToAntonyms);bufferedWriter.write(String.valueOf(result));bufferedWriter.newLine();bufferedReader.close();bufferedWriter.close();}
}

PEAK6 2020校招OA相关推荐

  1. 网传BAT等大厂2020校招传统大厂白菜价!

    网传2020校招传统大厂白菜价 (友情提醒:请将手机旋转90度 横屏观看)

  2. system verilog编程题_拼多多2020校招部分算法编程题合集

    拼多多2020校招部分算法编程题2道,多多的魔术盒子和多多的排列函数 其实根据他的匹配职位我们可以看到,这5道题的难度还是并不高,只是作为一个初步筛选,我这边选择了前两道跟大家分享 [编程题一] 多多 ...

  3. 京东2020校招数据分析工程师二面(2019.9.18)

    九月跑东跑西,相比前两个月的刷题输入,更多的在输出和打磨面试经验.跑了很多面试,不断挂挂挂挂挂,这是第一次进了二面. 地点: 广州 岗位:数据分析工程师 京东笔试传送门: <京东2020校招数据 ...

  4. 拼多多2020校招部分编程题

    文章目录 拼多多2020校招部分编程题 多多的排列函数 canci 拼多多2020校招部分编程题 #include <iostream> using namespace std; int ...

  5. 【阿里云2020校招提前批】中间件核心部门疯狂直推中!

    [阿里云2020校招提前批]中间件核心部门疯狂直推中! 招聘对象 部门介绍 我们的使命 我们的愿景 团队大咖 开放职位 职位要求 工作地点 招聘渠道 来了来了来了!!!我知道你们都等我很久了

  6. 小红书2020校招数据分析笔试题卷四 解析

    小红书2020校招数据分析笔试题卷四 解析 单选题 多选题 填空题 简答题 题目来自小红书2020校招数据分析笔试题卷四 单选题 如果在小红书商城中某一商户给一产品定价,如果按照全网最低价500元定价 ...

  7. 58同城2020校招转转算法岗笔试编程题

    58同城2020校招转转算法岗笔试编程题 第一题 题目描述:年末了要评选优秀员工了,给定一个优秀员工比率,在员工的评分上计算出能被选中的优秀员工的评分阈值.优秀员工人数=员工人数*优秀员工比率.员工人 ...

  8. 百度2020校招:技术改变世界,不负AI韶华

    莘莘学子与人工智能的故事,今天正在这片古老大地上加速上演. 自去年4月,教育部印发<高等学校人工智能创新行动计划>以来,我国高校教育体系明显对AI学科建设进行了提速,国内大批一流高校在今年 ...

  9. 如何看待2020校招数据分析岗位招聘情况?

    今天就之前看到的一个话题"如何看待2020校招数据分析岗位招聘爆炸难度"写一点想法.内容目录大概几个部分: 你看到的数据分析岗位 参加过2020校招的朋友说有神仙打架的感觉,数据分 ...

最新文章

  1. 网易2020校招笔试编程题回顾
  2. MVC中用Jquery、JS和Ajax 实现分页 存储过程是用mysql写的。
  3. 扒一扒AI的那些事儿
  4. Bugfree 搭建
  5. 遥感资源大放送(下)| 11 个经典遥感数据集
  6. SAR图像去噪算法汇总
  7. VegaFEM免费试用
  8. 模拟信号和数字信号的区别和特点
  9. 两张图片切换比例虚拟进度条
  10. 关于正向级数收敛而它的平方也收敛的证明
  11. Ozone数据探查服务Recon2.0设计
  12. java计算机毕业设计银创科技有限公司人事信息系统源码+数据库+系统+lw文档+部署
  13. HackTheGame 攻略 - 第一关
  14. 电话号码正则表达式手机固话分机
  15. 会议OA之我的会议(查询)
  16. 空闲时间不要接私活,要提升自己
  17. 图的连通性和连通分量
  18. 阿龙的学习笔记--- Docker 的一些概念总结
  19. hdu2177——威佐夫博弈变形
  20. 赵小楼《天道》《遥远的救世主》深度解析(10)肖亚文对丁元英有没有动过心思?

热门文章

  1. 关于幂等性的解决方案
  2. DHCP自动分配地址;DHCP指定IP给客户端
  3. Python自动化运维:Django Model进阶
  4. postgresql创建只读账号
  5. unity 游戏第一次安装完之后运行,切出来,点击桌面图标后黑屏问题
  6. JavaScript 正则表达式的使用
  7. 多线程Java服务器简单实现
  8. OpenGL 帧缓冲区
  9. android LaunchMode之SingleTask
  10. 4.5.3 BGP协议