2015年10月15日星期四

task schedule

2)Task Schedule
Tasks : AABABCD. more info on 1point3acres.com
Cooled Time: 2
output : 输出总共时间
要求保持Tasks 的执行顺序不变。执行一个task的时间是1, 求执行tasks系列一共需要多少时间,比如他的例子: A--AB-ABCD return 10

public int getTime(String str, int cool) {
    HashMap<Character, Integer> map = new HashMap<>();
    int i = 0;
    int time = 0;
    while (i < str.length()) {
      char c = str.charAt(i);
      if (!map.containsKey(c) || map.get(c) <= time) {
        map.put(c, time + cool + 1);
        i++;
        time++;
      } else {
        time = map.get(c);
      }
    }
    return time;
  }

  public static void main(String[] args) {
    Solution s = new Solution();
    System.out.println(s.getTime("AABABCD", 2));
  }

没有评论:

发表评论