Re: [问题] 循环改递回请益

楼主: adrianshum (Alien)   2018-10-22 10:02:03
概念上就下面这样
int count(str, c) {
if str is empty
Return 0
Else {
// str 减去第一个 char 的count
suffixCount = count(str[1:], c)
If str[0] == c
Return suffixCount + 1
Else
Return suffixCount
}
实际实作,str 减去第一个char 可以靠 char ptr:
(手机输入,或有错字,自己小心)
int count(std::string& str, char c) {
return count_internal(str.c_str(), c);
}
int count_internal(const char* s, c) {
if (*s == '\0' ) return 0;
return count_internal(s+1, c) + (*s == c ? 1:0);
}

Links booklink

Contact Us: admin [ a t ] ucptt.com