Hirdetés

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

  • zuzu000

    őstag

    Bár tudnám, miről beszéltek :D

    Megint kéne egy kis segítség, egyszerűen nem tudok rájönni. Csak rávezetés kéne, mivel nekem kéne megírnom. A lényeg, hogy tegyük fel, van két szó. Az egyik szó részsorozata a másiknak, ha a másik karaktereinek törlésével előállítható. Pl: x = aa , y = abba, ilyenkor x részsorozata y-nak. Az a feladat, hogy van egy szöveg és elő kell állítani a lehető legrövidebb szót, hogy a szöveg összes szava részsorozata legyen annak a szónak.
    pl a szövegben ez van: "aba abba aab", ilyenkor a legrövidebb szó, melynek minden szó részsorozata:
    aabba (ha nem nézem félre:D).
    Erre írtam a metódust, ami kigyűjti egy char tömbbe azokat a betűket, amik nincsenek benne, és a main-ben pedig a megfelelő helyre beillesztem.
    static char[] MikHianyoznak(string szo, string x)
    {
    char[] hianyzik = new char[szo.Length];
    for (int i = 0; i < szo.Length; i++)
    {
    char s = szo[i];
    if (x.IndexOf(s) == -1)
    hianyzik[i] = s;
    else
    x = x.Substring(x.IndexOf(s)+1);
    }
    return hianyzik;
    }

    Így néz ki. A hiba ebben a példában az aab-nél jön elő. Az első a-t megtalálja, a másodikat is, de az utána lévő b-t már nem, mivel az x ilyenkor már üres a substring miatt.
    Lehetőleg ezt szeretném módosítani valahogy. Vagy túl egyszerűen gondolkozom és a megoldás ennél sokkal bonyolultabb?

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