-
PROHARDVER!
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
A többiek javaslatán kívül még annyi, hogy ezt egy függvénybe kellene raknod, ami karaktersorozatot vár, és boolean értékkel tér vissza (true/false attól függően, hogy palindromról van-e szó), valamint tök felesleges végigfuttatnod a teljes ciklust, ha egyszer már a vége előtt kiderült, hogy tényleg nem palindrom az adott szó, nyugodtan visszatérhetsz egyből false-szal. A string hosszúságát pedig eltárolhatnád egy változóban a for ciklus előtt a sok felesleges szoveg.length() függvényhívás overheadjének elkerülése érdekében (kérdés, hogyan optimalizálja egyébként a fordító, a for ciklus "fejlécében" lévő összehasonlítást tudtommal optimalizálja, a ciklusmagban lévőt nem, tehát ott lesz overhead, még ha ez így "kicsiben" nem is érzékelhető, érdemes ráállni arra, hogy elkerülöd a felesleges függvényhívásokat, amik csak hozzátesznek a futási időhöz, még ha adott esetben nagyon keveset is).
=========
(#6846) Jester01 :
"Aki magyar kiosztással akar programozni az meg is érdemli"
jaj ne má'Az IDE hotkey-jeinek átállítása nem hiszem, hogy túl nagy problémát kéne, hogy okozzon. Szerintem magyar kiosztással is nagyon jól lehet programozni.
-
sztanozs
veterán
-
bucsupeti
senior tag
a lényegi részben a teendő
- for ciklust indítasz 0-tól a sztring hosszának feléig (str.length()/2)
- a cilusmagban a string aktuális pozíciójában (ciklusváltozó) lévő karaktert hasonlítod a sztring hossz mínusz a ciklusváltozó mínusz 1 pozíción lévővel. Pl az "alma" sztring esetében ha 0 a ciklusváltozó akkor a 0. és a 4-0-1=3 pozíción lévővel hasonlítod (az első a és az utolsó a lesz hasonlítva). Ha igaz akkor továbblépsz, ha eltér akkor exit és megjegyzed valahogy (pl bool változó) hogy eltérés van.
- a végén az aktuális állapot szerint kiírod a megfelelő szöveget. -
Jim-Y
veterán
Karma írta:
Célszerű indirekt vizsgálnod. >> feltételezed hogy palindroma, tehát kezdetben egy bool változó igaz.
Feltételezed, hogy palindrom, és megpróbálod cáfolni azzal, hogy páronként összehasonlítod a betűit >> úgy hasonlítod össze, hogy egy ciklussal elkezdesz a stringben az elejétől a vége felé haladni, és mindig az aktuális indexű betűt hasonlítod össze a hátulról vett párjával
- az elsőt az utolsóval, a másodikat az utolsó előttivel stb., >> lásd feljebb
és ha nem egyeznek meg, akkor nem lehet palindrom. >> ha a feltételvizsgálatban egyszer is igaz ágba megy a program, vagyis egyszer lesz eltérés a betű párok között, akkor a bool változót hamisra állítod, vagyis bebizonyítottad, hogy nem palindróma.Illetve getline függvény helyett használhatod simán a cin >> szoveg; -et is.
-
Jim-Y
veterán
A konkrét kódot senki sem fogja megosztani veled, ugyanis abból nem tanulsz :/
Próbáld meg megcsinálni, és ha valami nem megy, akkor linkeld be a kódód (pl pastebin), és segítünk. Amúgy amit Karma írt az egy tökéletes megoldás, gyorsan én is letöltöttem a codeblockot és kipróbáltam, szinte 1-1 az egyben ha begépeled amit írt, akkor megvan a megoldás. Nekem sallangokkal együtt 10 sor lett. sallangok nélkül kb 4-5-ből megvan.Annyival kiegészíteném viszont Karmát, hogy jól jöhet még neked a floor függvény is, ugyanis (még ha ennél a példánál nincs is nagy jelentősége) nem kell string végéig menned a for ciklussal, elég string.length / 2 alsó egészrészig. üdv
megj: legújabb codeblocks gcc-vel, 'AltGr + B' -re, ami a nyitó kapcsos be van állítva egy hotkey, így nem tudtam benne nyitó kapcsost csinálni, mondom full friss a telepítés, ez azért gáz...
-
Karma
félisten
A felsoroltakból szükséged van a stringre, a lengthre és egy for ciklusra.
Célszerű indirekt vizsgálnod. Feltételezed, hogy palindrom, és megpróbálod cáfolni azzal, hogy páronként összehasonlítod a betűit - az elsőt az utolsóval, a másodikat az utolsó előttivel stb., és ha nem egyeznek meg, akkor nem lehet palindrom.
Ha minden betűpárt megnéztél és nem találtál eltérést, akkor meg palindrom.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Mini-ITX
- Autós topik látogatók beszélgetős, offolós topikja
- Samsung Galaxy A54 - türelemjáték
- Google Pixel topik
- Milyen okostelefont vegyek?
- Magga: PLEX: multimédia az egész lakásban
- Steam Deck
- Honor Magic6 Pro - kör közepén számok
- QWERTY billentyűzet és másodlagos kijelző is lesz a Titan 2-ben
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- Lenovo T14 Gen4 AMD R5 7540U/512GB/16GB/14" 2240x1400 2.2K felbontás IPS
- ROG Maximus Z790 Dark Hero
- Új MSI KATANA 17 Gamer Tervező Laptop 17,3" -35% i7-13620H 10Mag 16/1TB RTX 4060 8GB FHD 144Hz
- Apple Iphone 13 128gb csillagfény színű OLCSÓN . Csere/beszámítás
- OnePlus Pad 2 + OnePlus Pad 2 billentyűzet + Extrák
- Bowers/Wilkins PX8 fejhallgatók (dupla Bluetooth eszköz csatlakoztatása!) - ELKELTEK
- BANKMENTES részletfizetés Noblechairs HERO RL valódi bőr Gamer Szék
- LG 27GP95RP - 27" Nano IPS - UHD 4K - 160Hz 1ms - NVIDIA G-Sync - FreeSync Premium PRO - HDR 600
- ÁRGARANCIA! Épített KomPhone i9 14900KF 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Samsung Galaxy A13/Samsung Galaxy A33/Samsung Galaxy A53
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged