Hogyan módosítsam ezt a programot, hogy megfeleljen a feladatnak? Egyszerűen nem jövök rá.
class Program
{
static void Main(string[] args)
{
StreamReader sr = new StreamReader("elso.txt", Encoding.Default);
StreamReader sr2 = new StreamReader("masodik.txt", Encoding.Default);
string elsoszoveg = "";
while (!sr.EndOfStream)
{
elsoszoveg += sr.ReadLine();
}
string masodikszoveg = "";
while (!sr2.EndOfStream)
{
masodikszoveg += sr2.ReadLine();
}
sr.Close();
sr2.Close();
LCS feladat = new LCS(elsoszoveg, masodikszoveg);
Console.WriteLine(LCS.plagium(elsoszoveg, masodikszoveg));
Console.ReadLine();
}
}
}
class LCS
{
string x = "";
public string X
{
get { return x; }
set { x = value; }
}
string y = "";
public string Y
{
get { return y; }
set { y = value; }
}
public LCS(string x, string y)
{
this.x = x;
this.y = y;
}
public static string plagium(string a, string b)
{
string leghosszabbkozos = "";
string temp = "";
int tmp = 0;
int ahossz = a.Length - 1;
int bhossz = b.Length - 1;
char utolso = ' ';
for (int i = 0; i < a.Length; i++)
{
for (int z = 0; z < b.Length; z++)
{
tmp = i;
while (a[tmp] == b[z] && z < b.Length - 1 && tmp < a.Length - 1)
{
temp += b[z];
utolso = b[z + 1];
tmp++;
z++;
}
if (temp.Length > leghosszabbkozos.Length)
{
leghosszabbkozos = temp;
}
temp = "";
}
}
leghosszabbkozos += utolso;
return leghosszabbkozos;
}
}
}
Feladat:
Legyen adott egy T szöveg (text fájlból beolvasandó). Keresse meg azt a legrövidebb X
szót, amelyre igaz, hogy T minden szava részsorozata X-nek. Az X szót a képernyőre írja
ki.
Tessék megtanulni, hogy egyetlen programozó sem fog foglalkozni a kódoddal, míg az nem olvasható.
Addig meg hehetsz isten hírével ezzel a hányadékkal, majd gyere vissza ha már tudsz normálisan tagolni.
Egyetértek az előttem szólókkal. Inkább a lényeget kérdezted volna.
A kódodat nem láttam de az algoritmus csak ennyi:
1. Kigyűjtöd T szavait egy listába.
2. Rendezed hossz szerint növekvő sorrendbe.
3. A legkisebbtől kezdve mindig kiválasztasz 1 szót.
4. Végigszaladsz a teljes listán és megnézed, hogy minden szó tartalmazza e a kiválasztott szót (de a kiválasztottat nem vizsgálod saját magával).
5. Ha minden szóban benne volt a kiválasztott akkor kiírod és algoritmus vége.
6. Egyébként ugrás a 3. pontra.
Áhh ez lemaradt:
A 3. pontnál még ellenőrzöd, hogy nem értél e a végére mert ha igen akkor kiírod, hogy nincs ilyen szó és algoritmus vége.
A feladat leírása nem teljesen egyértelmű (legalábbis számomra). Ezen okból kifolyólag nem biztos, hogy megfelelő az algoritmus.
Első olvasatra valószínűleg kiegészítette az agyam.
Miért nem használhatsz listát? Milyen témakört oktatnak, ahol felmerült ez a feladat?
Nem értem a feladatot...
Szóval ha X ből tudok úgy törölni karaktereket, hogy
T[i]-t kapjam akkor T[i] egy részsorozata X nek. Eddig igaz?
Na akkor nekem egy olyan X szót kell előállítanom (???) ami minden szónak részsorozata (akkor a min méret nem kisebb mint T legrövidebb szava ) és a lehető legrövidebb.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!