作者adrianshum (Alien)
看板Programming
标题Re: [问题] 回圈改递回请益
时间Mon Oct 22 10:02:03 2018
概念上就下面这样
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);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.130.128.150
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1540173726.A.485.html