algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Najdłuższe wspólne podsłowo - Implementacja w C/C++
Ocena użytkownikóww: *****  / 6
SłabyŚwietny
Nadesłany przez Rafał Świetlicki, 18 stycznia 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

podtekst.cpp:
//Najdluzsze wspolne podslowo
//www.algorytm.org
//(c)2007 Rafal Swietlicki

#include <cstdio>
using namespace std;

int len(char* tekst)
{
        char *w=tekst;
        int dl=0;
        while(*w)
        {
                w++;
                dl++;
        }
        return dl;
}

int main()
{
        char s1[30],s2[30];
        printf("Podaj pierwszy ciag\n");
        scanf("%s",s1);
        printf("Podaj drugi ciag\n");
        scanf("%s",s2);
        int m=len(s1),n=len(s2),maxi=0,ind=0;
        int t[30][30];
        for(int i=0;i<30;i++)
                t[0][i]=t[i][0]=0;
        for(int i=1;i<=m;i++)
                for(int j=1;j<=n;j++)
                        if(s1[i-1]!=s2[j-1]) t[i][j]=0;
                        else
                        {
                                t[i][j]=t[i-1][j-1]+1;
                                if(t[i][j]>maxi)
                                {
                                       maxi=t[i][j];
                                       ind=i;
                                }
                        }
        printf("%d\n",maxi);
        if (maxi!=0)
        {
                printf("Jest to: ");
                for (int i=0; i<maxi; i++)
                      printf("%c", s1[ind+i-maxi]);
        }


        return 0;
}

Dodaj komentarz