看板 Programming 關於我們 聯絡資訊
小弟第一次發文,若有違反版規的,請鞭小力點,謝謝。 小弟的題目,是尋找一個字串中,某個字母的出現次數 迴圈版本相當簡單,我還應付得來,程式碼如下: int countI(string s, char c) { int length = s.size(), cnt = 0; for (int i = 0; i < length; i++) if (s[i] == c) cnt++; return cnt; } 但遞迴的版本,我真的是一點頭緒也沒有 int countR(string s, char c) { int length = s.size(); if(s[length] == c) return 1 + countR(s, c); } 我原本是這樣寫,可是有一個很大的問題是 length 的值都一樣阿 每函式重進去一次,就會重新呼叫 length = s.size(); 請求各位大神給點方向,感恩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.114.150 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1538146355.A.183.html
ohcE0: substring? 36.228.195.222 09/28 23:09
RicciYeh: 那個是java嗎? 114.42.114.150 09/28 23:23
RicciYeh: 我沒學過所以沒辦法用欸… 114.42.114.150 09/28 23:23
cutekid: int countR(string s, char c, int i)101.137.169.131 09/28 23:43
cutekid: 拿s[i]跟c比,i等於s.size()時return 0101.137.169.131 09/28 23:47
MOONRAKER: 你length(應該是叫index,不過算了)要 218.161.46.90 09/29 00:12
MOONRAKER: 傳下去阿 你不傳下次怎麼知道比到哪裡 218.161.46.90 09/29 00:13
ohcE0: 函數名字不重要,重要的是你用的程式語言 36.228.195.222 09/29 00:46
ohcE0: 有沒有類似功能的函數 像Python的substring 36.228.195.222 09/29 00:47
ohcE0: 就只是[n1,n2]了事 c++的話的確有substring 36.228.195.222 09/29 00:49
MOONRAKER: Sorry弄錯了 length不用傳 是你現在比 218.161.46.90 09/29 12:52
MOONRAKER: 到哪一個字元要傳下去 目前你程式裡 218.161.46.90 09/29 12:53
MOONRAKER: 沒有這個變數存在 218.161.46.90 09/29 12:53
RicciYeh: 好的感謝大家的幫忙223.140.111.163 09/29 16:00
RicciYeh: 我再想想223.140.111.163 09/29 16:00