字符串中子序列的长度

length of sub-sequence in the string

本文关键字:字符串      更新时间:2023-10-16

我需要实现lastSeq函数,它得到作为参数string strchar chr并返回重复chr的最后一个序列的长度(该序列可以是任意长度)例如:lastSeq("abbaabbbbacd",'a')应该返回1
lastSeq("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;  
}