leetcode-1419-数青蛙

题目描述:

 

 

 

 自己的提交:

class Solution:
    def minNumberOfFrogs(self, croakOfFrogs: str) -> int:
        c = collections.Counter()
        ans = 0
        st = "croak"
        for s in croakOfFrogs:
            c[s] += 1
            for i in st[:st.index(s)]:
                if c[i] < c[s]:
                    return -1
            ans = max(c[s],ans)
            if s == 'k':
                for i in "croak":
                    c[i] -= 1
        for i in "croak":
            if c[i] != 0:
                return -1
        if len(c.keys()) != 5:
            return -1
        return ans

另:

class Solution:
    def minNumberOfFrogs(self, cr: str) -> int:
        pre = [0] * 5
        res = 0
        for c in cr:
            if c == 'c':
                pre[0] += 1
            if c == 'r':
                pre[0] -= 1
                pre[1] += 1
            if c == 'o':
                pre[1] -= 1
                pre[2] += 1
            if c == 'a':
                pre[2] -= 1
                pre[3] += 1
            if c == 'k':
                pre[3] -= 1
            if any(c < 0 for c in pre):
                return -1
            res = max(res, sum(pre))
        
        if any(c != 0 for c in pre):
            return -1
        return res

 

posted @ 2020-04-20 20:50  oldby  阅读(336)  评论(0编辑  收藏  举报