Le code que vous avez repris n’est pas super en terme d’empreinte mémoire avec cette gabegie de String dupliquées un peu partout…
Pourquoi cette volonté de ne pas utiliser de bibliothèques ? Le fun de faire tout vous même ( en reprenant du code proposé ou des bouts de bibliothèques ce n’est plus un travail perso de toutes façons et vous avez un code absolument non optimisé)