Re: [問題] 迴圈改遞迴請益
概念上就下面這樣
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://www.ptt.cc/bbs/Programming/M.1540173726.A.485.html
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章