zoukankan      html  css  js  c++  java
  • 【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

  • 相关阅读:
    jquery
    为什么用bower 安装bootstrap而不用npm来安装?
    Grunt 入门操作指南
    微信页面识别二维码非常不灵敏 而且识别的位置偏移 的解决方案
    osx安装sass
    sass安装和语法
    ES6新特性概述
    link-hover-visited-active
    css HACK
    CSS3文本溢出显示省略号
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3926639.html
Copyright © 2011-2022 走看看