Új hozzászólás Aktív témák

  • kovisoft

    őstag

    válasz Hege1234 #3866 üzenetére

    Ha teljesen random stringek lehetnek, és azt sem lehet tudni, hogy hány darab szám jellegű rész van bennük és azok hol helyezkednek el a stringen belül, akkor én hagynám a replace() és társait, és inkább valami ilyesmit csinálnék:

    - feldarabolnám egy listába az adott stringet olyan részekre, amikben vagy minden karakter csupa számjegy, vagy minden karakter csupa nem-számjegy
    - a nem-számjegy elemeket békén hagynám
    - a csupa számjegyből álló elemeket kiegészíteném balról nullákkal úgy, hogy a teljes szám hossza valami fix érték legyen (pl. ha nincsenek 10 számjegynél hosszabb számok, akkor legyen minden szám 10 jegyű)
    - ebből a listából visszaépítenék egy stringet
    - az így kapott string alapján rendezném a stringjeimet, itt már nem lenne gond a rendezéssel, hiszen minden szám ugyanannyi jegyű, tehát a lexikografikus rendezés egyúttal nagyságrendi rendezést is jelent

    Nem tudok olyan egyszerű split() hívást, ami a fenti darabolást elvégezné, úgyhogy szerintem erre kellene írni egy ciklust, ami számjegy/nem-számjegy mentén vágna. A visszaépítés már csak egy join() lesz.

Új hozzászólás Aktív témák