Hogyan kellene ennek a feladatnak neki kezdenem?
[link] 10.oldal
Hogyan kellene letárolnoma betu-szam párosokat?? Én legelőször úgy gondolnám, hogy van egy struktúrám/osztályom ami tárol egy azonosítót és egy char típusú listát. Majd létrehozok egy ilyen struktúra tipusú listát amibe megy egy azonosító ami a számokat jelöli 2-től 9-ig, a másik felébe (azaz ami listát fogad) meg az adott sámhoz lehetséges betűk pl 2 és A, B, C. De ez így nem egy szép megoldása ennek (gondolom én), valamint rengeteg sor is. Miként lehetne ezt megoldani? (Maguk a feladatok ezután már nem jelentenének nagy nehéséget ahogy így átfutottam, de az adatszerkezet létrehozására nincs megoldásom)
Csinálhatod, ahogyan az első írta vagy feltöltesz egy tömböt amikben eltárolód a betűhöz tartozó kódot.
TÖMB = [2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9];
Az "a" betű ASCII kódja 97 a "b" betűi 98 és így tovább egészen a "z" betűig, aminek 122, tehát egy betű kódját így kapod meg TÖMB[ASCII_KÓD('g')-97].
public class SmsSzavak
{
Dictionary<char, int> _karakterKodok;
Dictionary<string, List<string>> _szoKodok;
StringBuilder _sb;
public SmsSzavak()
{
_karakterKodok = new Dictionary<char, int>();
int karakterSzam = 1;
int i = 'a';
for (; i < 'o' + 1; i++)
{
if ((i - 'a') % 3 == 0)
{
karakterSzam++;
}
_karakterKodok.Add((char)i, karakterSzam);
}
karakterSzam++;
for (; i < 's' + 1; i++)
{
_karakterKodok.Add((char)i, karakterSzam);
}
karakterSzam++;
for (; i < 'v' + 1; i++)
{
_karakterKodok.Add((char)i, karakterSzam);
}
karakterSzam++;
for (; i < 'z' + 1; i++)
{
_karakterKodok.Add((char)i, karakterSzam);
}
_szoKodok = new Dictionary<string, List<string>>();
string[] szavak = File.ReadAllLines("szavak.txt");
_sb = new StringBuilder();
foreach (var szo in szavak)
{
foreach (var betu in szo)
{
_sb.Append(_karakterKodok[betu]);
}
if (_szoKodok.ContainsKey(_sb.ToString()))
{
_szoKodok[_sb.ToString()].Add(szo);
}
else
{
_szoKodok.Add(_sb.ToString(), new List<string>());
_szoKodok[_sb.ToString()].Add(szo);
}
_sb.Clear();
}
}
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!