Sziasztok!
Elkezdtem én is ilyen logikai feladatokkal foglalkozni. Van jó pár amit én is ki tudok találni, vagy ha nem akkor kigúglizható, de erre sehol nem találtam válasz. Ez alapvetően egy programozási kérdés, és programozási megoldást tudok is rá néhányat, csak az a kérdés, hogy esetleg van-e rá jó logikai megoldás is?
Van 26 dobozunk az angol abc egy-egy betűjével ellátva. A dobozokba betűket lehet rakni, kivéve az adott dobozon szereplőt. A kérdés az, hogy minimum hány dobozváltás szükséges, hogy az összes betűt behelyezzük a dobozokba egy adott karaktersorozatra.
- Egy dobozba akármennyi betűt belerakhatunk egymás után is és egy dobozt akárhányszor használhatunk újra.
- Dobozváltás alatt azt értjük, hogy ha az adott ponton egy másik dobozba kezdjük rakosgatni a betűket.
- A sorozat bármilyen hosszú lehet, egy karakter természetesen többször is előfordulhat.
Milyen algoritmussal lehetne az optimális (tehát minimális dobozváltásos) megoldást megtalálni?
Milyen adatszerkezettel lehetne ezt hatékonyan?
Könnyítés lehet az, hogy az input string-hez bármilyen sorrenben hozzáférünk, de a dobozokba az eredeti sorrenben kell, hogy kerüljenek a betűk.
Szóval hogy lehet ezt a feladatot megoldani annélkül, hogy plusz buffert (egy címke nélküli üres dobozt) használnék? |