Hirdetés
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Poco F6 5G - Turbó Rudi
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- Yettel topik
- MWC 2026: Kezünkben a minden tekintetben európai okostelefon
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Honor Magic5 Pro - kamerák bűvöletében
- Xiaomi 15T Pro - a téma nincs lezárva
- Xiaomi 13 - felnőni nehéz
Új hozzászólás Aktív témák
-
cucka
addikt
válasz
PazsitZ
#3903
üzenetére
Még korábban én is barkácsoltam ilyen rövidítő kódot, de nem olyan egyszerű (még az enyém sincs kész csak félig-meddig ), mondjuk nálam az is szempont, hogy a szövegben lévő tag-ek is érvényesek maradjanak.
Pedig ez nem túl bonyolult feladat, a lényege, hogy szét kell bontani szavakra a szöveget. Kétfajta szó lesz benne: html tag-ek és sima szavak. Ezután végigmész a szavakon és a következő algoritmust használod (kell hozzá egy verem és fontos a sorrend):
- Ha az aktuális szó nem html tag, akkor kiírod az output-ra és növeled a kiírt karakterek/szavak számát.
- Ha az aktuális szó nyitó és záró tag egyben, akkor kiírod az output-ra. (Például ilyen a <br />, aminek nincs záró tag-je, mert már le van zárva).
- Ha az aktuális szó html nyitó tag, akkor kiírod az output-ra és a html tag-et lerakod a verembe. (tehát csak magát a tag-et, az attribútumokat nem). Példa egy veremre: {'span', 'a', 'div'}
- ha az aktuális szó egy html lezáró tag (pl. </div>), akkor kiírod az output-ra és a veremből addig dobálod ki a tag-eket, amíg ki nem dobtad az aktuális html lezáró tag párját.Az iterációnak akkor van vége, ha elfogytak a szavak, vagy a kiírt karakterek/szavak száma elérte az előre meghatározott limitet. Ezután a veremben maradt elemeket kidobálod és mindegyikre kiírod a hozzá tartozó lezáró html tag-et. (Tehát ha a verem tetején egy div tag van, akkor azt fogod kiírni, hogy </div>, ezután pedig kiszeded a veremből.
Az algoritmus pár lényeges tulajdonsága:
- Megőrzi a html tag-eket.
- Csak a képernyőn látható betűket/szavakat számolja, a html tag-eket nem.
- Ha a szövegedben vannak lezáratlan tag-ek, akkor is működik. Ha a szövegben olyan lezáró tag van, aminek nincs nyitó párja, akkor nem működik helyesen, de kiegészíthető, hogy erre az esetre is jó legyen.
- Az algoritmus kimenetében nem lesznek lezáratlan html tag-ek.
- Bizonyos tag-eket a böngészők automatikusan lezárnak (pl. br, hr), ezek felismerésével ki kell egészíteni az algoritmust.
Új hozzászólás Aktív témák
- PlayStation 5
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Poco F6 5G - Turbó Rudi
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
- Nem csak drága ATX 3.1-es tápok léteznek
- Házimozi belépő szinten
- Milyen légkondit a lakásba?
- Garancia kérdés, fogyasztóvédelem
- Revolut
- Xiaomi 13T és 13T Pro - nincs tétlenkedés
- További aktív témák...
- Samsung Odyssey G9 S49CG954EU 5120x1440 / VA / 240hz
- BESZÁMÍTÁS! Akár részletfizetés 0% THM ÚJ AMD RYZEN AM4 processzorok 3 év garanciával 27% áfaval
- Samsung Galaxy S22 Ultra 256GB, Kártyafüggetlen, 1 Év Garanciával
- Macbook Pro 13" 2019 - 4 mag i5, 8GB RAM, touchbar - garancia (13)
- DJI Flip Fly More Combo (RC 2)
- Új Lenovo Thinkbook 14 G7 WUXGA IPS Ultra7 155H 16mag 32GB 1TB SSD Intel Arc Win11 Pro Garancia
- Apple MacBook Pro 16 (2021) M1 Max 32GB RAM 500GB SSD használt, megkímélt 100% akku (0 ciklus)
- iPhone 15 Pro 128GB Blue Titanium -1 ÉV GARANCIA - Kártyafüggetlen, MS4589
- Beszámítás! HP Elitebook 840 G11 14 FHD notebook - Ultra 5 135U 16GB DDR5 256GB SSD Intel Win11
- GYÖNYÖRŰ iPhone 14 128GB Midnight-1 ÉV GARANCIA - Kártyafüggetlen, MS4496
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

