0

我正在这个网站上练习我的 python 编码。这就是问题

Return True if the string "cat" and "dog" appear 
the same number of times in the given string. 

cat_dog('catdog') → True
cat_dog('catcat') → False
cat_dog('1cat1cadodog') → True

这是我的代码,出于某种未知原因,我没有通过所有测试用例。我在调试时遇到问题

def cat_dog(str):

    length=len(str)-2
    i=0
    catcount=0
    dogcount=0



    for i in range (0,length):
        animal=str[i:i+2]

        if ("cat" in animal):
            catcount=catcount+1

        if ("dog" in animal):
            dogcount=dogcount+1

    if (dogcount==catcount):
        return True
    else:
        return False
4

3 回答 3

5

你不需要创建一个函数,只需要一行就足够了。比如:

return s.count('cat') == s.count('dog')

于 2013-05-27T01:29:44.723 回答
0
def cat_dog(str):
    count_cat = str.count('cat')
    count_dog = str.count('dog')
      
    if count_cat == count_dog:
        return True
    else:
        return False
于 2021-04-30T17:12:50.290 回答
0

没有循环的替代方案:

> def cat_dog(str):
>     total_len = len(str)
>     cat = str.replace("cat", "")
>     dog = str.replace("dog", "")
>     if len(cat) == len(dog):
>       if len(cat) < len(str):
>         if len(dog) < len(str):
>           return True
>     if len(cat) == len(str) and len(dog) == len(str):
>       return True
> 
>     else: return False
于 2021-01-07T03:52:12.177 回答