Ezt így kéne megoldani?
Java-ban kell függvényt írnom, ami megmondja egy szóról, hogy lehet-e palindrom a betűk átrendezésével.
Tehát mondjuk a "racecar" szó palindrom, így a függvény pl. az "ecarrac" stringre truet ad.
Vagy pl. "aap" -> true (mert "apa" palindrom).
"abc" -> false
"A szó az angol ABC kisbetűiből állhat és nagyon hosszú is lehet", ilyen feltétel van.
Úgy oldottam meg, hogy megszámolom a stringben a páratlanszor előforduló karaktereket és ha ez a szám nagyobb, mint egy, akkor falset adok vissza, egyébként truet.
Itt a kódom:
[link] (nem enged rendes urlt elküldeni, vegyétek ki a zárójeleket)
Ha van ennél jobb módszer akkor megköszönném, ha leírnátok.





A módszer nem jó, mert lehet 3 darab mássalhangzóval is palindrom.
Az én megoldásom az lenne, hogy csinálsz egy 26 elemű int tömböt, aminek minden eleme az abc egy betűjét reprezentálja. Haladsz a stringedben, és az aktuális karakter -'a' indexű elemet növeled eggyel.
Ezután megnézed a string hosszát.
Ha páros hosszú a string, akkor 0 páratlan lehet a tömbben, ha páratlan hosszú a string, akkor pontosan 1 darab páratlan számú lesz.
Ha ez nem teljesül, nem rendezhető át.





Helyesbítek
"A módszer nem jó, mert lehet 3 darab mássalhangzóval is palindrom."
Nem ezért nem jó, mert akkor is 1-et találsz páratlan elemszámmal, félreolvastam.
Hanem azért nem jó, mert páros hosszú szövegnél nem lehet páratlan (középső) betű, azaz 0 páratlan lehet csak





Nekem jónak tűnik a logika, 2 kisebb módosítást eszközölnék talán:
Felesleges szerintem char tömböt csinálni a Stringből, használhatod a String.charAt(index) metódust.
A 2. ciklusban lévő if blokkot pedig le lehet rövidíteni "odds += count % 2"-re.
"Hanem azért nem jó, mert páros hosszú szövegnél nem lehet páratlan (középső) betű, azaz 0 páratlan lehet csak"
Asszem értem mit akarsz mondani, de ha egy páros hosszú szövegben van egy páratlan betű, akkor a fennmaradó betűk száma páratlan, tehát mindenképpen lennie kell mégegy páratlan betűnek. Így pedig már megbukik az odds < 2 teszten.
De lehet én értem rosszul, azért lenne jó, ha írnál egy példát.
5-ös köszi!
Közben frissítettem a kódomat az 5. válaszoló javaslatai alapján:
[link] (zárójelek nélkül)
Köszönöm mégegyszer.










Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!