Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

big_muff

Alter Hase

Beiträge: 460

Wohnort: Schweiz

Beruf: Informatikstudent (4. Semester)

  • Private Nachricht senden

91

21.01.2008, 20:09

Hmm, wenn ich die Testfälle bei mir teste bekomme ich nur einen Fehler bei Nummer 14...

Auf jeden Fall schon mal Gratulation an David und Helmut!
Nur Idioten halten Ordnung, ein Genie beherrscht das Chaos.[size=7]

[/size]HardFate - Ein Start, Ein Ziel, Viele Wege[size=7]

[/size]Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.

Sicaine

unregistriert

92

21.01.2008, 20:11

Mh warn schoener Contest. Hab hier auch noch mal schoen geuebt wie unterschiedlich die Compiler bestimmte Sachen hier handhaben und dass man vielleicht mit mehr Testfaellen arbeiten sollte :D.

Auf jeden graz an alle die gewonnen haben.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

93

21.01.2008, 20:28

War gut und hat spaß gemacht... :D :)
Gratulation natürlich an Helmut und David :arrow: ;)

S.Seegel

2x Contest-Sieger

  • Private Nachricht senden

94

21.01.2008, 20:38

Insbesondere die Lösung von David hat es mir angetan: trotz aller Kürze immer noch auf den ersten Blick verständlich und nachvollziehbar. Alle Achtung !

Bei Helmut's Lösung musste ich schon einen Moment nachdenken.

Selbstverständlich gehen aber auch meine Glückwünsche an beide !

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

95

21.01.2008, 21:00

Jup, warn lustiger Contest! :) Weiter gehts! ;)

Edit:

Hier noch meine anderen Ansätze:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
size_t my_palindrome1(const char* p_string)
{
    const char *p1, *p2, *e = p_string;

    while ( *e++ );

    int len = --e - p_string, max = 1 && len;

    while ( len-- )
    {
        p1 = p2 = e-len;

        int i = *--p1 == *p2 || !++p2;

        while ( p1-p_string && *p1-- == *p2++ )
            ++++i;

        if ( max < ++i ) max = i;
    }

    return max;
} // 95


size_t my_palindrome2( const char* p_string )
{
    int max = 0;
    const char *p, *e = p_string;

    while ( *++e );

    do
    {
        int i = 0;
        p = p_string;

        while ( p < e )
            i += 2 * ( *p++ == *e && *e-- ) + ( p == e );

        while ( max < i ) ++max;
    } while ( --e > p_string );

    return max;
} // 83


size_t my_palindrome3( const char* p_string )
{
    int i, max = i = 0;

    while ( *p_string )
    {
        const char* l, *r = l = p_string;

        while ( *++r );

        while ( l < r )
            *l == *r-- ? ++l && ++++i : i = 0, i += l == r;

        max = max > i ? max : i;
        ++p_string;
    }

    return max;
} // 79


size_t my_palindrome4( const char* p_string )
{
    typedef const char* pchar;

    pchar e = p_string;

    while ( *e++ );

    pchar p = e;

    while ( p > p_string )
    {
        int offset = e - p--;

        while ( offset+1 )
        {
            pchar l = p_string + offset, r = p + offset--;

            while ( *r == *l && *r )
                if ( r-- <= l++ ) 
                    return p - p_string + 1;
        }
    }

    return 0;
} // 90
@D13_Dreinig

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

96

21.01.2008, 23:45

Juhu gewonnen :)

Die Lösungen von TGGC und David_pb gefallen mir sehr, auch wenn ich sie nicht verstehe:) Leider bringt das ++++i ja nichts bei David_pb, außer dass es lustig aussieht...;)

ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

David Scherfgen

Administrator

  • »David Scherfgen« ist der Autor dieses Themas

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

97

22.01.2008, 06:02

Da hat David_pb doch tatsächlich eine rekursive Lösung hingekriegt, ohne statische Variablen zu benutzen oder eine separate Funktion zu schreiben! Und das obwohl TGGC im Chat sagte, dass dies nicht möglich sei! ;)

Ab Contest Nr. 3 wird übrigens nur noch mit dem GCC 3.4.2 getestet. Windows-Benutzer wie ich können wxDev-C++ oder Code::Blocks herunterladen, das sind kostenlose vollständige IDEs mit einem Windows-Port dieses Compilers.

Das ist weniger Arbeit für mich, und einige problematische Fragestellungen fallen damit weg, so dass der Wettbewerb fairer wird.

Ich habe die Regeln schon angepasst und werde beim nächsten Contest auch noch einmal darauf hinweisen.

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

98

22.01.2008, 08:39

Hallo David,
kann auch Code::Blocks und MinGW empfehlen.
Von Code::Blocks gibts auch einen Nigthly Build, den ich mit immer sauge.

Hab im Moment aber leider vile zu tun und mir fehlt es auch noch an professionalität was Programmierung angeht.
Denke aber, dass ich irgendwann mal mit teilnehmen werde an einem Contest.

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Anonymous

unregistriert

99

22.01.2008, 09:15

Zitat von »"David Scherfgen"«

Da hat David_pb doch tatsächlich eine rekursive Lösung hingekriegt, ohne statische Variablen zu benutzen oder eine separate Funktion zu schreiben! Und das obwohl TGGC im Chat sagte, dass dies nicht möglich sei! ;)
Nicht das es nicht moeglich ist, sondern das es zu lang ist, um zu gewinnen. Man muesste jetzt mal schauen, ob man David_pb Loesung kuerzer formulieren kann, wenn man die Rekursion in eine Schleife umformuliert.

Ich haette aber evtl. eine Idee gehabt, waer der String nicht konstant gewesen. So aehnlich wie bei mir, aber um den String zu kuerzen, nicht die uebergebene Laenge verringern, sondern das letzte Zeichen mit einem 0-Byte ueberschreiben.

Und sag mal, warum hattest du in dem Test denn keine langen Worte mehr, die keine (bzw. nicht komplett) Palindrome waren? Hihi. f'`8k


Gruß, TGGC (making great games since 1992)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

100

22.01.2008, 09:39

Zitat von »"Helmut"«

Leider bringt das ++++i ja nichts bei David_pb, außer dass es lustig aussieht...;)


Das kann man so nicht sagen! :) Ich hätte für ein i += 2 zwei fünf Token mehr benötigt! ;)
@D13_Dreinig

Werbeanzeige