c语言查找连续相同的字符?
各位牛人:
小弟有个问题想向你们请教,能否帮忙解决一下?
是这样的有3个有20种氨基酸组成的蛋白质序列:
>序列名称1
MGMGMGRFGGMLVVLVVLVV……序列非常长
>序列名称2
NNNNNNNNNNNNNNGGGGGMMRFRFRFGLGLGLGLLGLLGLLLLG……序列非常长
>序列名称3
IFSGIIIIIIIIIIIIIIIIIIIGGGGGGGFFFFMMMMMGGGGMMGMGMG……序列非常长我们能很容易的看到序列内部有许多重复序列,MGRMGRMGR,LVVLVVLVV
我要问的问题是:如何在多个任意的规模的蛋白质序列序列内部识别这些重复, 并且以最大匹配的方式识别这些重复,例如重复LLLLLLLA LLLLLLLA LLLLLLLA, 应该被看出是由3个LLLLLLLA构成的重复,而并 不被看成是LLLLLLL重复,要求最后能报道每个序列的长度,氨基酸重复的的数量,每个氨基酸重复的次数,在序列中的位置,每个 氨基酸重复的长度。 
告它们在序列中的位置。

解决方案 »

  1.   

    那就好办了。
    用两个指针,p1和p2
    开始的时候,都指向start的位置。
    p2不断往后移动,当 *p2 == *p1的时候停止。
    那么Len = p2 - p1
    那么比较两个字符串 string_compare(p1, Len, p2, Len);
    不相等说明连续的p1和p2不相等。相等的话,保存状态,继续p2++;
    来找更长的“相等”
      

  2.   

    我所谓的string_compare的,非常类似于memcmp~
      

  3.   


    你搞反了吧
    很明显,这个匹配要从最长的开始。所以应该是从len/2长度的字串开始匹配。
    看他的问题描述