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
Administrator
Zitat von »"TGGC"«
Und sag mal, warum hattest du in dem Test denn keine langen Worte mehr, die keine (bzw. nicht komplett) Palindrome waren? Hihi. f'`8k
Zitat von »"David_pb"«
Das kann man so nicht sagen! Ich hätte für ein i += 2 zwei fünf Token mehr benötigt!
C-/C++-Quelltext |
|
1 2 |
++ ++ i // 3 Token i += 2 // 3 Token |
Zitat von »"David Scherfgen"«
Zitat von »"David_pb"«
Das kann man so nicht sagen! Ich hätte für ein i += 2 zwei fünf Token mehr benötigt!
Wie jetzt?
C-/C++-Quelltext
1 2 ++ ++ i // 3 Token i += 2 // 3 Token
Administrator
Zitat von »"David_pb"«
Aber "i += 2" kann nicht in den boolschen Ausdruck mit rein, d.h. ich brauch zusätzlich eine If-Abfrage + Rumpf + Semikolon!
Zitat von »"David Scherfgen"«
Zitat von »"David_pb"«
Aber "i += 2" kann nicht in den boolschen Ausdruck mit rein, d.h. ich brauch zusätzlich eine If-Abfrage + Rumpf + Semikolon!
Ah ja. Das ist wegen der Operatorpräzedenz. Wenn du Klammern um i += 2 setzt, dann geht's auch ohne if-Abfrage + Rumpf + Semikolon, ist aber natürlich trotzdem 2 Token länger.
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!
Zitat von »"TGGC"«
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.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
size_t my_palindrome(const char* p_string) { size_t length = *p_string ? my_palindrome(p_string + 1) : 0; const char *last = p_string; while (*last) for (const char *p = p_string, *q = last++; p <= q && *p == *q;) length = --q < ++p && last-p_string > length ? last-p_string : length; return length; } |
C-/C++-Quelltext |
|
1 2 3 4 5 |
while (*p_string) { ... p_string++; } |
Quellcode |
|
1 2 3 4 5 6 |
Fehler bei Fkt #palindrome_davidpb Reference: 2 / palindrome_davidpb: 1 Pre-Data Dump: 96 88 d9 bc 24 b8 15 e8 c6 97 8f 2f 4e bf 81 ed 35 8b 8f 1 Data Dump: 88 f2 8d 45 51 9b 12 61 40 28 3d d7 b0 16 93 d5 cf a8 bd 95 3f 4c c4 8d b 45 7a 40 d0 9 41 58 fb ce 9d 4c 69 af ad aa d7 ea 81 88 1 14 5d d0 bc 1a 65 fc 67 2a 89 72 6f 4 b3 40 d f4 98 9 c3 36 55 2c e5 3 d6 bd ed 57 45 ee 6b a2 be 28 bc 24 24 23 4e ad 96 bd b1 49 fd bf 3d 96 c8 |
Quellcode |
|
1 2 3 4 5 6 |
Fehler bei Fkt #palindrome_helmut Reference: 1 / palindrome_helmut: 2 Pre-Data Dump: 88 3 26 45 Data Dump: ab 35 52 50 7 33 80 5b 33 27 4c 9e f9 a9 b1 f8 38 c7 3a c5 e7 bd f3 18 d7 b1 67 60 b4 8e a5 5f c3 f7 b0 cb 2a 30 26 5e 57 72 fc 50 1b ae 48 54 75 83 19 5c 40 d 75 18 be dc 78 72 6a 1d d2 2e 14 82 f9 3e b2 1f 9c 9 92 99 59 ad 47 a1 1 bc 24 1b 19 65 28 8e 7d e6 6a f5 58 d5 12 2a 3 26 ac fc 64 5e 1b 1 67 ad 9a c0 5b e1 62 5c 9d 86 77 b6 eb 9f 44 68 85 af 5d de 84 6f 8 87 95 b5 83 fa 13 9e fb 7b 4c 95 3b a7 76 9d 3 13 24 7b ca f 1a e 78 a0 bd d5 7e 41 45 86 c8 da 3b 4b d4 4f ea cf ca 36 64 5 dd da a3 e0 ee c7 5b b8 d6 76 c6 4e 16 84 24 94 c5 69 1a 8e 43 56 d9 18 a5 c3 e7 6f f9 4c 74 d6 26 17 b7 14 de 12 cc b5 88 93 3 9e 17 27 32 dc 90 4d 6a d4 a3 44 ec 48 7 d3 b7 1 1f 2b d7 46 43 8e 5a 21 a1 27 d6 29 ba da c8 d1 1 fa ad 92 47 18 66 ea 5c 52 32 63 25 e9 64 45 15 3c 8b 58 ca e5 79 6b c 50 95 c6 2a 5d 97 2b 57 45 bd 9f 5d 23 89 b9 75 bc 1c 9b a5 81 e0 ba bd 6b 12 87 50 8c f3 5d dc 88 23 6 e5 bb 31 3c |
Anonymous
unregistriert
Dann hab ich mich wohl tatsaechlich geirrt. f'`8kZitat von »"S.Seegel"«
Also zumindest für meinen Ansatz sind die iterative bzw. rekursive Lösung in Bezug auf die Token-Anzahl gleichwertig.
Quellcode |
|
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 |
"\x88\xf2\x8d\x45\x51\x9b\x12\x61" "\x40\x28\x3d\xd7\xb0\x16\x93\xd5" "\xcf\xa8\xbd\x95\x3f\x4c\xc4\x8d" "\x0b\x45\x7a\x40\xd0\x09\x41\x58" "\xfb\xce\x9d\x4c\x69\xaf\xad\xaa" "\xd7\xea\x81\x88\x01\x14\x5d\xd0" "\xbc\x1a\x65\xfc\x67\x2a\x89\x72" "\x6f\x04\xb3\x40\x0d\xf4\x98\x09" "\xc3\x36\x55\x2c\xe5\x03\xd6\xbd" "\xed\x57\x45\xee\x6b\xa2\xbe\x28" "\xbc\x24\x24\x23\x4e\xad\x96\xbd" "\xb1\x49\xfd\xbf\x3d\x96\xc8\0", "\xab\x35\x52\x50\x07\x33\x80\x5b" "\x33\x27\x4c\x9e\xf9\xa9\xb1\xf8" "\x38\xc7\x3a\xc5\xe7\xbd\xf3\x18" "\xd7\xb1\x67\x60\xb4\x8e\xa5\x5f" "\xc3\xf7\xb0\xcb\x2a\x30\x26\x5e" "\x57\x72\xfc\x50\x1b\xae\x48\x54" "\x75\x83\x19\x5c\x40\x0d\x75\x18" "\xbe\xdc\x78\x72\x6a\x1d\xd2\x2e" "\x14\x82\xf9\x3e\xb2\x1f\x9c\x09" "\x92\x99\x59\xad\x47\xa1\x01\xbc" "\x24\x1b\x19\x65\x28\x8e\x7d\xe6" "\x6a\xf5\x58\xd5\x12\x2a\x03\x26" "\xac\xfc\x64\x5e\x1b\x01\x67\xad" "\x9a\xc0\x5b\xe1\x62\x5c\x9d\x86" "\x77\xb6\xeb\x9f\x44\x68\x85\xaf" "\x5d\xde\x84\x6f\x08\x87\x95\xb5" "\x83\xfa\x13\x9e\xfb\x7b\x4c\x95" "\x3b\xa7\x76\x9d\x03\x13\x24\x7b" "\xca\x0f\x1a\x0e\x78\xa0\xbd\xd5" "\x7e\x41\x45\x86\xc8\xda\x3b\x4b" "\xd4\x4f\xea\xcf\xca\x36\x64\x05" "\xdd\xda\xa3\xe0\xee\xc7\x5b\xb8" "\xd6\x76\xc6\x4e\x16\x84\x24\x94" "\xc5\x69\x1a\x8e\x43\x56\xd9\x18" "\xa5\xc3\xe7\x6f\xf9\x4c\x74\xd6" "\x26\x17\xb7\x14\xde\x12\xcc\xb5" "\x88\x93\x03\x9e\x17\x27\x32\xdc" "\x90\x4d\x6a\xd4\xa3\x44\xec\x48" "\x07\xd3\xb7\x01\x1f\x2b\xd7\x46" "\x43\x8e\x5a\x21\xa1\x27\xd6\x29" "\xba\xda\xc8\xd1\x01\xfa\xad\x92" "\x47\x18\x66\xea\x5c\x52\x32\x63" "\x25\xe9\x64\x45\x15\x3c\x8b\x58" "\xca\xe5\x79\x6b\x0c\x50\x95\xc6" "\x2a\x5d\x97\x2b\x57\x45\xbd\x9f" "\x5d\x23\x89\xb9\x75\xbc\x1c\x9b" "\xa5\x81\xe0\xba\xbd\x6b\x12\x87" "\x50\x8c\xf3\x5d\xdc\x88\x23\x06" "\xe5\xbb\x31\x3c\0" |
Werbeanzeige