首页 > 代码库 > 【TopCoder】SRM151 DIV2 练习总结
【TopCoder】SRM151 DIV2 练习总结
第一次做完整的SRM题,刷完感觉萌萌哒,不过自己对java中很多细节不熟练,还要边做题边google。
250分的题:判断字符串序列是否是前缀码,如果不是,返回第一个违反前缀码规则的字符串。
简单的暴力方法,要积累的是java中startsWith的用法:
1 public boolean startsWith(String prefix)
如果prefix是调用该函数的字符串的前缀,返回true,否则返回false。从实际经验来看,对大小写是敏感的,即No不是not的前缀。
完整代码连接:GitHub
500分题:给定一个日期和一组人的生日,问从当前日期开始,下一次生日在什么时间。
首先对这组人的生日排序,然后用二分查找当前日期;如果找到,就返回当前日期;否则,返回数组中第一个比当前日期大的日期。另外需要注意的一点是,如果数组中没有比当前日期大的日期,则返回数组中最小的日期(相当于从明年开始算)。
积累java中Comparator的使用方法:实现一个新的类,并且实现接口Comparator,即实现函数compare。在compare中,如果两个对象是小于关系返回1,等于返回0,大于返回-1。
实现了这个接口以后,无论是排序还是二分,都可以用java自带的函数了,十分方便快捷。
完整代码连接:GitHub(不过这题我有个case没过T_T)。
1000分题:计算mergesort中元素的比较次数,mergesort的过程题目很有爱的用伪码给出了。
就是实现一个mergesort就可以了。
完整代码:GitHub
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。