2013-05-27 3 views
0

Я практикую свое кодирование на Python на этом website. В этом и состоит проблемаПроверьте, сколько раз строка появляется в определенном слове

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 
+0

Есть ли причина не использовать регулярные выражения? – cerkiewny

+3

'return s.count (« cat ») == s.count (« dog »)' – jfs

+2

'animal = str [i: i + 2]' дает 'animal' длину' 2', которая всегда найдет 0 кошек и 0 собак в каждой строке, заставляя вашу функцию всегда возвращать 'True'. – Blender

ответ

3

Вам не нужно создающая функцию, просто линия enough.like:

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

Смежные вопросы