Exemplo n.º 1
0
void LCSUB(char *str1,int len1,char *str2,int len2)
{
	if (NULL == str1 || NULL == str2 || len1 <= 0 || len2 <=0)
	{
		return;
	}
	int curlen,maxlen =0;
	int maxindex = -1;
	for (int i = 0; i < len1; ++i)
	{
		for (int j = 0; j < len2; ++j)
		{
			curlen = comlen(&str1[i],&str2[j]);
			if (curlen > maxlen)
			{
				maxlen = curlen;
				maxindex = i;
			}
		}
	}
	for (int i = 0; i < maxlen; ++i)
	{
		printf("%c ", str1[maxindex]);
		maxindex++;
	}
}
Exemplo n.º 2
0
void find_repeted_str(char *str)
{
    int len = strlen(str);
    char **a = (char **)malloc(len * sizeof(char *));
    int i;

    for(i = 0; i < len; i ++){
        a[i] = &str[i];
        //printf("a[%d] : %s\n", i, a[i]);
    }

    qsort(a, len, sizeof(char *), pstrcmp);

    //for(i = 0; i < len; i ++){
    //    printf("a[%d] : %s\n", i, a[i]);
    //}
    
    int maxlen = 0;
    int maxi;
    for(i = 0; i < len - 1; i ++){
        int tmp = comlen(a[i], a[i + 1]);
        if(tmp > maxlen){
            maxlen = tmp;
            maxi = i;
        }
    }
    printf("%.*s\n", maxlen, a[maxi]);

    free(a);
}
Exemplo n.º 3
0
int main()
{
	char *s="Ask not what your country can do for you, but what you can do for your country";
	char *a[MAX];
	int maxlen=-1, i, j, maxi, maxj;
	int thislen=0;
	for(i=0; i<strlen(s); i++)
	{
		for(j=i+1; j<strlen(s); j++)
		{
			if((thislen=comlen(&s[i], &s[j]))>maxlen)
			{
				maxlen=thislen;
				maxi=i;
				maxj=j;	
			}
		}
	}
	printf("%.*s\n", maxlen, s+maxi);

	for (i=0; i<strlen(s); i++)
	{
		a[i]=s+i;
	}
	qsort(a, strlen(s), sizeof(a[0]), pstrcmp);

	maxlen=-1;
	for(i=0; i<strlen(s)-1; i++)
	{
		if(comlen(a[i], a[i+1])>maxlen)
		{
			maxlen=comlen(a[i], a[i+1]);
			maxi=i;
		}
	}
	printf("%.*s\n", maxlen, a[maxi]);
	return 0;
}