Új hozzászólás Aktív témák
-
zuzu000
őstag
Sziasztok!
Insert-tel hogy lehet karaktert beilleszteni?
van egy char[] táblázatom és egy string x = aba szavam.
x = x.Insert(2, char[2]);
ez nem működik, mivel string-et kér második argumentumnak. -
zuzu000
őstag
válasz Peter Kiss #6012 üzenetére
Köszönöm! Ebben a félévben kezdtem, még nem jönnek rögtön ezek a megoldások
-
zuzu000
őstag
válasz Peter Kiss #6015 üzenetére
Igen, vele már jó barátságot kötöttem.
De itt egy újabb kérdés.
string[] szavak-ban vannak szavak, pl szavak[0] = ab
na most, hogy lehet megnézni, hogy a szavak[0]-nak mi az első karaktere, tehát az a-t hogy lehetne előhozni?szerk: szerintem sikerült, létrehoztam egy ideiglenes string-et, amibe beletettem szavak[0]-t, ennek már lehet karakterenként nézni!
[ Szerkesztve ]
-
zuzu000
őstag
Char tömbben hogy keresem meg az első nem \0 elem indexét? Tehát ami valamilyen karaktert jelöl, nem üres. Illetve a \0 space-t jelöl? Vagyis ha ezt beillesztem egy string-be, akkor ott szóköz lesz?
Szerk.: kipróbáltam, \0 = szóköz
[ Szerkesztve ]
-
zuzu000
őstag
Huh, köszi, bár ilyet még nem tanultunk, meg nem is nagyon értem, mi történik benne, szóval nem tenném bele. (beadandó, és lehet, hogy belekérdeznek)
For-ral hogy gondoltad? while-lal próbáltam, de valamiért nem akart működni.
int hely = -1;
int temp =0;
while (hely != -1)
{
if (array [temp] != '\0')
hely = temp;
temp++;
}
De valamiért bele se akart menni a ciklusba, nem értem, mi baja.A \0 meg érdekes, mert kipróbáltam.
string y = "abba";
y = y.Insert(1, '\0'.ToString());
Console.WriteLine(y);
"a bba"[ Szerkesztve ]
-
zuzu000
őstag
Bár tudnám, miről beszéltek
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).
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? -
zuzu000
őstag
static int[] MibőlMennyi(string[] szavak, char[] karakterek)
{
int[] mimennyi = new int[karakterek.Length];
for (int i = 0; i < szavak.Length; i++)
{
for (int i2 = 0; i2 < karakterek.Length; i2++)
{
if ((szavak[i].Count(x => x == karakterek[i2]) > mimennyi[i2]))
mimennyi[i2]++;
}
}
return mimennyi;
}szavak[0] = "abcd"
szavak[1] = "abb"
karakterek = a,b,c,d
Meg szeretném számolni, hogy miből hány darab van, és egy int[] tömbbe betenni a mennyiségeket. De valamiért a mimennyi[] így néz ki : 1,1,1,1,0,0,0,.. stb.
Tehát mintha minden karakterből csak egyet talált volna, ami szavak[0]-ra jó is, de b-ből kettő van szavak[1]-ben. -
zuzu000
őstag
válasz Jester01 #6078 üzenetére
De ez 3-at adna vissza b-re, nem? Azt akartam, hogy maximum hányszor fordul elő, tehát ha 'a' már volt az első szóban, és a másodikban is csak egyszer van, akkor ne növelje az értéket. Ha 'b' egyszer van az első szóban és 2x a másodikban, akkor 2 legyen a mimennyi megfelelő eleme. Vagyis csak akkor növelje a mimennyi[i2]-t, ha többet talál a következő szóban, mint amennyi már eddig van.
[ Szerkesztve ]
-
zuzu000
őstag
válasz Jester01 #6080 üzenetére
Igaz, igaz, ott a pont! Így már megy, köszi
Szerk.: ez még mindig a beadandó feladatomhoz kell, és tegnap utánaolvasva kiderült, hogy a tanár nem gondolta át egészen. A feladat az, hogy adott egy T szöveg. Keressünk meg azt a legrövidebb X szót, melyre igaz, hogy T minden szava részsorozata X-nek. Részsorozat az, hogyha a karaktereinek törlésével előállítható, a sorrendet figyelembe véve.
Pl: A = "abba" B = "aa", akkor B részsorozata A-nak.
Ahogy néztem ez lenne a Shortest Common Supersequence, amire jelenleg nincs olyan kód (n szavú szövegre), mely ésszerű időn belül lefutna. Ti mit tudtok erről?[ Szerkesztve ]
-
zuzu000
őstag
Igen, az a baj vele, hogy nem elég egyszerre két szóra nézni, hanem a T szöveg összesére kell egyszerre. Ha két szavanként nézzük, akkor közelítő megoldást tudunk kapni, de nem az lesz a legrövidebb. De arra se tudtam megírni a kódot. Az is baj, hogy nem egyértelmű.
pl: x = ac y = ab
most akkor melyik lesz a közös legrövidebb szó, melynek x és y is részsorozata? abc, vagy acb? -
zuzu000
őstag
Sziasztok!
Blockmapet (amit wolf3d és doom is használt), hogy lehetne legkönnyebben C#-ba implementálni? Mondjuk maga a pálya 32*32-es, és egy block 8*8-as. Ez lenne a collision detektálás alapja, a játékban amit csinálok (suli beadandó)
-
zuzu000
őstag
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Napelem
- Raspberry Pi
- Futás, futópályák
- Kertészet, mezőgazdaság topik
- Az USA nem akarja visszafogni Kína növekedését
- Békéscsaba és környéke adok-veszek-beszélgetek
- Huawei Mate 10 Pro - mestersége az intelligencia
- Fujifilm X
- Amlogic S905, S912 processzoros készülékek
- Gyúrósok ide!
- További aktív témák...