在一个字符串中找到可能的最长的子字符串,且该子字符串由同一字符组成。
问题:最长字符串是否唯一?
#include "stdafx.h"
#include "stdlib.h"
#include <iostream>
using namespace std;
void funcSearchString(char *p);
int _tmain(int argc, _TCHAR* argv[])
{
char strTest[100] = "aaassdddfffddddse";
int maxLength =1;
int startpoint = 0;
funcSearchString(strTest);
system("pause");
return 0;
}
void funcSearchString(char *p)
{
int **results = new int*[strlen(p)];
for (int ii=0; ii<strlen(p); ii++)
results[ii]=new int[2];
results[0][1]=1;
int maxLength=1;
int startpoint;
int m =0;
for (unsigned int i=0; i< strlen(p); i++)
{
int tempstartpoint = i;
int tempLength = 1;
while ( i< strlen(p) && p[tempstartpoint] == p[i+1])
{
i++;
tempLength++;
}
if (tempLength >= results[0][1])
{
if (tempLength > results[0][1])
m=0;
results[m][0] = tempstartpoint;
results[m][1] = tempLength;
m++;
}
}
for (int kk=0; kk<m; kk++)
{
for (int k=0 ; k<results[kk][1] ;k++)
{
cout<<p[results[kk][0]+k];
}
cout<<endl;
}
}