字符串中子序列的长度
length of sub-sequence in the string
本文关键字:字符串 更新时间:2023-10-16
我需要实现lastSeq
函数,它得到作为参数string str
和char chr
并返回重复chr
的最后一个序列的长度(该序列可以是任意长度)例如:lastSeq("abbaabbbbacd",'a')
应该返回1lastSeq("abbaabbbbacd",'b')
应该返回4lastSeq("abbaabbbbacd",'t')
应该返回0
有c++函数可以解决吗?
这似乎是家庭作业,所以我只是给你们一些指导,以便你们自己找到答案。
首先,如果没有计算机为你的样本给出正确的结果,你自己怎么做呢?从这些手动运行中,您如何将它们概括为简单的步骤,以便您可以解决所有不同输入的问题。
到目前为止,你应该有一个粗略的算法来解决这个问题。你知道c++中字符串的存储,以及该类中可用的方法吗?它们中的某一个可以用来解决你算法中的一些步骤吗?试着用这些函数写一个程序,编译并运行它。你得到预期的结果了吗?如果没有,你可以尝试打印中间状态(使用std::cout << "Some value: " << variable << "n";
)来调试它吗?
一旦你完成了所有这些,如果你仍然有问题,用你的代码更新你的问题,我们将能够给你更直接的帮助。
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;
}