我需要實現lastSeq
功能,它可以獲取作爲參數string str
和char chr
和返回重複chr
的最後序列的長度,例如(該序列可以是任意長度的) 中: lastSeq("abbaabbbbacd",'a')
應該返回1
lastSeq("abbaabbbbacd",'b')
應該返回4 lastSeq("abbaabbbbacd",'t')
應返回0長度子序列的串
有C++函數,它能解決呢?
我需要實現lastSeq
功能,它可以獲取作爲參數string str
和char chr
和返回重複chr
的最後序列的長度,例如(該序列可以是任意長度的) 中: lastSeq("abbaabbbbacd",'a')
應該返回1
lastSeq("abbaabbbbacd",'b')
應該返回4 lastSeq("abbaabbbbacd",'t')
應返回0長度子序列的串
有C++函數,它能解決呢?
int lastSeq(char *str, char chr)
{
int i = strlen(str);
int l = 0;
while(--i>=0)
if(*(str + i) == chr && ++l)
break;
while(--i>=0 && chr == *(str + i) && ++l);
return l;
}
這似乎是家庭作業,所以我只是給你指示,讓你可以自己找到答案。
首先,您將如何自己做,而無需計算機爲您的樣品提供正確的結果。從這些手動運行中,您將如何簡單地進行概括,以便您可以解決所有不同輸入的問題。
到此爲止,您應該有一個粗略的算法來解決這個問題。你對C++中存儲字符串有什麼瞭解,以及該類可用的方法?有人可以用它來解決算法的一些步驟嗎?
嘗試使用這些函數編寫程序,編譯它並運行它。你有預期的結果嗎?如果沒有,您可以嘗試打印中間狀態(使用std::cout << "Some value: " << variable << "\n";
)嘗試調試它。
完成所有這些操作後,如果仍然存在問題,請使用您的代碼更新您的問題,我們將能夠爲您提供更直接的幫助。
好的。你的問題是什麼?你有什麼嘗試? – Mat
對此沒有直接的功能,你將不得不使用字符串可用的各種查找函數來實現算法。查看'std :: string'或者C字符串函數的一個很好的參考。 – Nim