Keresés

Új hozzászólás Aktív témák

  • #83580928

    törölt tag

    Srácok, segítséget szeretnék kérni, mert teljesen elakadtam. Kaptam egy ilyen feladatot, amit anno 8. osztályosoknak adtak fel és nem tudom megoldani :D

    Szóval maga a feladat:
    3. feladat: DNS (30 pont)
    A DNS mesterséges előállításáért folytatott kísérletek során sikerült előállítani egy óriásmolekula-szálat. Ennek leírása legfeljebb 255 karakterből áll (C, G, A és T betű le­het benne). Ismétlődésnek nevezünk egy legalább 2 karakterből álló sorozatot, ha a DNS-leírásban legalább kétszer előfordul (egymást nem átfedően).
    Írj programot (DNS.PAS, DNS.C vagy DNS.BAS), amely beolvassa a DNS-leírást, majd megadja a benne szereplő leghosszabb ismétlődő szakaszt (ha van olyan).
    Ha valamelyik részfeladatra több megoldás is van, akkor az elsőt kell megadni.
    Példák:
    DNS: CGACCGACCGAT
    Leghosszabb ismétlődő: CGAC
    DNS: ACGTCG
    Leghosszabb ismétlődő: CG
    DNS:GSRVNKASRVKHPGQGOIOIIGUMXKABKEMOROHJHDNNAXOHYXJPDLFSYGHQPBFQLAORVCIHCUANOLVVHTIVVDBKMEPTEFQYTNTEHNGE
    Leghosszabb ismétlődő:SRV

    Ezt kellene megoldanom, de egyszerűen lövésem sincs. Annyi szakaszos feladatot csináltam már, de itt egyszerűen elakadtam. Valaki tudna segíteni, pár mondtam elmagyarázni, milyen algoritmust írjak.
    Előre is köszönöm.

  • #83580928

    törölt tag

    válasz #83580928 #12429 üzenetére

    Az úgy például jó elgondolás, hogy mondjuk megnézem az első két karakterláncot (CG) és megnézem string maradék részében, hogy ismétlődik-e, ha igen akkor elmentem egy segédtömbbe. Utána megnézem az első három karaktert, megnézem hogy ismétlődik-e a maradék karakterekben, ha igen elmentem a segédtömb következő indexébe. Így tovább.Viszont ha az első két karakter nem ismétlődik, akkor tovább ugrok a következőre (GA).Ha mondjuk egy változóban mindig tárolnám a leghosszabb hosszt és ha mondjuk az elején lenne egy 4 karakternyi hosszúságú ismétlődés, akkor azután már 5 karakternyi hosszúságút keressen, mert a többi nem érdekel minket. Sokkal kevesebb találat lenne és kevesebb adat is kerülne a segédtömbbe. Ez így jó ? Meg eleve csak a string feléig kell keresnem, mert utána már nem ismétlődhet.

    Példa: CGACCGACCGAT

    [ Szerkesztve ]

  • #83580928

    törölt tag

    válasz kovisoft #12432 üzenetére

    Köszönöm, most már össze tudom hozni remélhetőleg. A gyorsaság még nem számít. Keresgéltem a Googleba is, sztringkereső algoritmusok, ott pont volt egy ilyen DNS-s mintás, de az algoritmus bonyolult volt nekem (Reverse Colussi algoritmus).

Új hozzászólás Aktív témák