Nu stiu ce ai facut acolo, cunosc numai C++ si C#. Dar stiu sigur ca problema asta se face cu 1 vector de aparitie. Si te folosesti de codul ascii pentru a introduce valori in pozitia corecta din vector:
pozitiile de la 0-9 vor fii pt cifre, iar cele de la 32 pana la 45 pt litere... sau mai stiu exact.
Ideea e sa nu te complici cu alte siruri de caractere sau stiu eu. Doar folosesti un for care sa treaca prin fiecare pozitie la rand din cuvant si bagi direct cresterea in vector, nici nu stai sa vezi daca e litera sau cifra.