数青蛙

作者: 霹雳解锋镝 | 来源:发表于2020-04-22 11:20 被阅读0次
public int minNumberOfFrogs(String croakOfFrogs) {
    // 当前青蛙数
    int count = 0;
    // 最大青蛙数
    int max_count = 0;
    // 哇
    String str = "croak";

    // str 转 map
    Map<Character, Integer> map = new HashMap();
    for (Character c : croakOfFrogs.toCharArray()) {
        map.put(c, map.getOrDefault(c, 0) + 1);
        // 不满足顺序
        if (!seqCheck(map)) {
            return -1;
        }
        // c时新增加一只青蛙
        if (c == 'c') {
            count++;
            max_count = Math.max(count, max_count);
        } else if (c == 'k') {
            // 为k时则从map中移除一只青蛙
            for (Character s : str.toCharArray()) {
                // 若croak不足则返回-1
                if (map.get(s) < 1) {
                    return -1;
                }
                map.put(s, map.get(s) - 1);
            }
            // 青蛙数量减一
            count--;
            max_count = Math.max(count, max_count);
        }

    }
    // 循环完当前数量为0
    if (count != 0) {
        return -1;
    }
    return max_count;
}

/**
 * 判断是否按照croak顺序
 *
 * @param map
 * @return
 */
private boolean seqCheck(Map<Character, Integer> map) {
    Integer c_count = map.getOrDefault('c', 0);
    Integer r_count = map.getOrDefault('r', 0);
    Integer o_count = map.getOrDefault('o', 0);
    Integer a_count = map.getOrDefault('a', 0);
    Integer k_count = map.getOrDefault('k', 0);
    return c_count >= r_count && r_count >= o_count && o_count >= a_count && a_count >= k_count;
}

相关文章

  • 周检视 20190114~20日

    周检视2019/1/14~20 一、本周已完成和未完成青蛙数? 累计青蛙数? 本周青蛙数: 20 本周完成青蛙数:...

  • 周检视20190204-10

    周检视20190204~10 一、本周已完成和未完成青蛙数?累计青蛙数?本周青蛙数: 20 累计青蛙数:本周完成青...

  • 3月第一周周检视

    周检视20190304~10 一、本周已完成和未完成青蛙数?累计青蛙数? 3月份累计青蛙数: 30 本周青蛙数: ...

  • 数青蛙

  • 周检视20190311~17

    周检视20190311~17 一、本周已完成和未完成青蛙数?累计青蛙数? 3月份累计青蛙数: 30+21 本周青蛙...

  • 蛙,哇!

    春夏之交,雨水充沛之时,田野里,农村里,最常见的要数青蛙。在青蛙里,我最喜爱的就数全绿的青蛙。 雨水太大时,河水漫...

  • 1419. 数青蛙

    插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。[http...

  • 《积的变化规律》教学设计

    一:导入 师:在上课之前我们一起来唱一首数青蛙的顺口溜吧。一只青蛙四条腿,两只青蛙八条腿,三只青蛙十二条腿,四只青...

  • 失眠

    昨晚我又数青蛙了,蚊子走了,于是我又数蛇,但是蛇有点小害怕,所以,我又数猫,最后,狗吠声出来了,吓得鸡开始打鸣了。

  • 晨练11

    2018年10月28日,晨练第101天 冥想,腿塑型,睡天鹅式左右各100个数,蝴蝶式鸽子式各100个数,趴青蛙(...

网友评论

      本文标题:数青蛙

      本文链接:https://www.haomeiwen.com/subject/jfnbihtx.html