2014-04-07 4 views
-1

intro comp sci 실습실에서는 내장 된 메서드 나 루프를 사용하지 않고 문자열에서 주어진 문자의 발생 횟수를 계산하는 재귀 함수를 작성하려고합니다. myStr.count를 사용하지 않으면 꽤 난처한 상황입니다. 누구든지 팁을 줄 수 있습니까? myStr [0]의 ID를 검사하고 문자가! = myStr [0]이면 0을 반환해야합니까?Python 3에서 재귀 함수 작성하기

def count(letter, myStr, theLen): 

#Code for def count 

def main(): 

    print ("The count of letter a is: ", count("a", "abacdadaad", 10)) 
    print ("The count of letter b is: ", count("b", "abacdadaad", 10)) 
    print ("The count of letter c is: ", count("c", "abacdadaad", 10)) 
    print ("The count of letter d is: ", count("d", "abacdadaad", 10)) 

main() 
+2

파이썬으로, 제대로 코드를 IDENT하십시오이 꽤 큰 거래 : – jozefg

+0

*의 I [0] myStr의 신원을 확인하고 편지 경우 0을 반환 뭔가를 시도해야합니다! = myStr [0] * - 당신은 확실히 올바른 길을 가고 있습니다. 또한 letter == myStr [0] 일 때 무슨 일이 일어나는지 생각한 다음 재귀 적으로 구현하십시오. –

+0

또한 적절한 PEP8 양식을 사용하십시오. 나는. camelCase (또한,'myStr'과'theLen'은 스타일에 관계없이 지독한 이름입니다)와 함수 이름과 여는 괄호 사이에 공백이 없어야합니다. – ThiefMaster

답변

0

일반적으로 재귀 적으로 작성하는 경우 주된 문제는 반환 조건이 무엇인지 결정하는 것입니다. 분명히 문자열의 문자를 세는 경우 문자열의 마지막 문자를 테스트하는 순간입니다.

당신은 시도 할 수 :

def recursive(string, letter): 

    if len(string) == 1 and string == letter: 
     return 1; 

    elif len(string) == 1: 
     return 0; 

    if string[0] == letter: 
     count = 1 + recursive(string[1:], letter) 

    else: 
     count = recursive(string[1:], letter) 

    return count