Bernhard Peissl: Denksport - ein kleines Informatik-Rätsel

Beitrag lesen

Hallo Björn

a,b oder c können dabei * ( >=0 ) mal vorkommen. Die Worte, die man mit dieser Sprache bilden kann, sollen durch einen regulären Ausdruck beschrieben werden.

Das würde bedeuten, dass auch "" ein gültiger Name wäre. Ich gehe mal davon aus, dass du das nicht möchtest,

Doch, möcht ich ;-) Das gehört auch dazu, * also

mein Ausdruck erfordert daher ein Zeichen. Wenn du das nicht möchtest, änder das '+' in ein '*'.

Mögliche Worte(Zeichenketten) sind z.b: aaa, abcabcc, ac, bcbbbb, ba, ... Keine Worte aus dieser Sprache wären: cabac, c, abccb

wenn 'abccb' ein gültiger Name ist, kann 'abcabcc' keiner sein, dort steht nämlich kein 'a' oder 'b' vor dem letzten 'c'.

Ihr seht, eine haarige Sache also, und gar nicht _soooo_ leicht.

Finde ich nicht:

/^    # string beginnt mit
(     # ein Konstrukt aus
[ab]c # c mit vorhergehenden 'a' oder 'b'
     # oder
[ab]  # 'a' oder 'b'
)+    # das ganze mind. 1 Mal
$/x   # string endet

Also das schaut gut aus, ich hab ein bissl herumprobiert, und nix gefunden, aber ich will nix verschreien, mal abwarten ob jemand noch was findet, wo dein regex nicht hinhaut ;-(

umgeschrieben also (sorry, aber ich tu mir da einfach leichter)

((ab)c(ab))*

aaa ist ok
abcabcc ist ein FEHLER
     ac ist ok

»»  bcbbbb ist ok

ba ist ok
  cabac ist ein FEHLER
      c ist ein FEHLER
  abccb ist ein FEHLER

Unwiderlegbar!

Reguläre Ausdrücke -- Jeffrey E. F. Friedl -- ISBN: 3930673622

http://www.amazon.de/exec/obidos/ASIN/3930673622/081181081181

Wenn sich herausstellt dass deins stimmt, dann verspreche ich, mir ernsthaft zu überlegen, ob ich mir das Buch kaufen soll ;-)
Da würden einige hier wohl ziemlich aufatmen ;-)

Im Hinblick auf den Frieden im Forum verspreche ich hiemit bis Jahresende das perlre durchzuackern! ob was hängenbleibt sei dahingestellt, aber der Wille ist da :-)

liebe Grüsse
Bernhard

0 71

Denksport - ein kleines Informatik-Rätsel

Bernhard Peissl
  • menschelei
  1. 0
    AlexBausW
    1. 0
      Bernhard Peissl
      1. 0
        Bernhard Peissl
      2. 0
        n.d. parker
        1. 0
          Bernhard Peissl
  2. 0
    F.Heyer
    1. 0
      Bernhard Peissl
      1. 0
        F.Heyer
        1. 0
          Bernhard Peissl
          1. 0
            F.Heyer
            1. 0
              Bernhard Peissl
              1. 0

                Obfuscated Perl Contest

                n.d. parker
                • perl
                1. 0
                  Bernhard Peissl
                  1. 0
                    Bernhard Peissl
    2. 0
      Christian Kruse
      1. 0
        F.Heyer
        1. 0
          Christian Kruse
          1. 0
            F.Heyer
            1. 0
              Bernhard Peissl
              1. 0
                Christian Kruse
                1. 0
                  F.Heyer
              2. 0
                F.Heyer
                1. 0
                  Bernhard Peissl
                  1. 0
                    F.Heyer
      2. 0
        Björn Höhrmann
        1. 0
          Linksetzer
  3. 0
    Marko
    1. 0
      Marko
      1. 0
        Bernhard Peissl
        1. 0
          Marko
          1. 0
            Bernhard Peissl
            1. 0
              Marko
              1. 0
                Bernhard Peissl
                1. 0
                  Marko
                2. 0
                  Michael N.
                  1. 0
                    Bernhard Peissl
                    1. 0
                      Michael N.
    2. 0
      Bernhard Peissl
      1. 0
        n.d. parker
        1. 0
          Bernhard Peissl
          1. 0
            n.d. parker
  4. 0
    Klaus Mock
    1. 0
      Klaus Mock
    2. 0
      Bernhard Peissl
      1. 0
        AlexBausW
        1. 0
          Bernhard Peissl
      2. 0
        Klaus Mock
        1. 0
          Bernhard Peissl
          1. 0
            Klaus Mock
            1. 0
              Bernhard Peissl
              1. 0
                Klaus Mock
                1. 0
                  Bernhard Peissl
                  1. 0
                    Bernhard Peissl
                  2. 0
                    Klaus Mock
                    1. 0
                      Bernhard Peissl
                      1. 0
                        Klaus Mock
      3. 0
        Björn Höhrmann
    3. 0
      Björn Höhrmann
      1. 0
        Linksetzer
        1. 0
          Bernhard Peissl
        2. 0
          Björn Höhrmann
  5. 0
    Björn Höhrmann
    1. 0
      Bernhard Peissl
      1. 0
        Björn Höhrmann
        1. 0
          Bernhard Peissl
          1. 0
            AlexBausW
            1. 0
              Bernhard Peissl
              1. 0
                AlexBausW
  6. 0
    Michael N.
    1. 0
      Bernhard Peissl