示例#1
0
文件: test.c 项目: volunteers/test
char * reverseString(char *s)
{
    char size = strlen(s);
    int i, j = 0;
    reverseS(s, 0, size-1);

    for (i = 0; i <= size; i++)
    {
	if (s[i] == ' '  || s[i] == '\0')
	{
	    reverseS(s, j, i-1);
	    j = i + 1;
	}
    }
    return s;
}
示例#2
0
int main(int argc, char * argv[])
{
	int broj;
	jazel * lista = NULL;
	jazel_single *lista_edinecna = NULL;

	printf("DVOJNA\n");
	printf("Vnesi integer za dodavanje vo lista, za kraj vnesi bilo sto razlicno od broj:\n");
	while (scanf("%d", &broj) == 1)
	{
		insert(&lista, broj);
		printf("Vnesi integer za dodavanje vo lista, za kraj vnesi bilo sto razlicno od broj:\n");
	}

	printf("*****\nPRED:\n*****\n");
	pecati(lista);
	reverse(&lista);
	printf("*****\nPOTOA:\n*****\n");
	pecati(lista);

	jazel * tmp;
	jazel * kraj = lista->prev;
	while (lista != kraj)
	{
		tmp = lista->next;
		free(lista);
		lista = tmp;
	}
	free(kraj);

	getchar();
	printf("EDINECNA\n");
	printf("Vnesi integer za dodavanje vo lista, za kraj vnesi bilo sto razlicno od broj:\n");
	while (scanf("%d", &broj) == 1)
	{
		insertS(&lista_edinecna, broj);
		printf("Vnesi integer za dodavanje vo lista, za kraj vnesi bilo sto razlicno od broj:\n");
	}
	printf("*****\nPRED:\n*****\n");
	pecatiS(lista_edinecna);
	reverseS(&lista_edinecna);
	printf("*****\nPOTOA:\n*****\n");
	pecatiS(lista_edinecna);

	jazel_single * tmp1;
	while (lista_edinecna)
	{
		tmp1 = lista_edinecna->next;
		free(lista_edinecna);
		lista_edinecna = tmp1;
	}


	return 0;
}
    string longestPalindrome(string s) {

        int len = s.size();

        if (len == 0 || len == 1)
            return s;

        int maxLengthOfPalindrome = 1;
        int beg = 0;
        int end = 1;

        string reverseS(s);
        reverse(reverseS.begin(), reverseS.end());

        int maxLen = 1;
        string maxPalindrome(s.begin(), s.begin() + 1);


        for (int i = 0; i < reverseS.size(); ++ i)
        {

            if (i + maxLen >= reverseS.size())
                break;

            string pattern = reverseS.substr(i, reverseS.size() - i);

            int tmpMaxLen = computeMaxPalindrome(s, pattern);

            if (tmpMaxLen > maxLen)
            {
                maxLen = tmpMaxLen;
                maxPalindrome = pattern.substr(0, maxLen);
            }

        }

        return maxPalindrome;

    }