Avatar billede frederikschack Nybegynder
20. marts 2005 - 21:30 Der er 2 kommentarer og
1 løsning

200p Negativ liste

Hej,

Jeg ville høre om der er nogen der har en god idé til hvordan man laver en hurtig rutine, der genererer en negativliste over tal-/bogstavfølger der mangler mellem f.eks. "AAA3" og "AABB"

altså:

AAA4
AAA5
AAA6
AAA7
.
.
.
AAAZ
AABA

også selvom der er varierende antal tal og bogstaver.

Altså finde alle kombinationer af 1 til x cifre/bogstaver, som mangler i en liste. Hvor x angives af brugeren?
Avatar billede arne_v Ekspert
20. marts 2005 - 21:45 #1
Jeg ved ikke om det er den kønneste løsning men den ser ud til at virke:

package march;

public class IntervalFind {
    private final static String VALID = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    public static String next(String s) {
        StringBuffer sb = new StringBuffer(s);
        int ix = s.length() - 1;
        boolean more = true;
        while (more) {
            int val = VALID.indexOf(s.charAt(ix)) + 1;
            if(val < VALID.length()) {
                sb.setCharAt(ix, VALID.charAt(val));
                more = false;
            } else {
                sb.setCharAt(ix, VALID.charAt(0));
                ix--;
            }
        }
        return sb.toString();
    }

    public static void loop(String lastprev, String firstnext) {
        String s = next(lastprev);
        while (!s.equals(firstnext)) {
            System.out.println(s);
            s = next(s);
        }
    }

    public static void main(String[] args) {
        loop("AAA3", "AABB");
    }
}
Avatar billede frederikschack Nybegynder
20. marts 2005 - 22:00 #2
Den er glimrende ;o)

Smid et svar
Avatar billede arne_v Ekspert
20. marts 2005 - 22:05 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester