概念上就下面這樣
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);
}