026
25.08.2005, 20:48 Uhr
Pablo
Supertux (Operator)
|
Ohn virtuals Lösung zu kopieren, habe ich durch meine ursprüngliche Idee das hier
C++: |
const char* mss(const char* h, const char* n) { int i=0;while(h[i]&&n[i]&&h[i]==n[i])++i;return !n[i]?h:*h?mss(h+1,n):NULL; }
|
Aber komme auf 75. Ich hab an der for Schleife nie gedacht und damit macht man alles kleiner.
So
C++: |
const char* mss(const char* h, const char* n) { int i=0;while(n[i]&&h[i]==n[i])++i;return !n[i]?h:*h?mss(h+1,n):NULL; }
|
komme ich auf 69 aber was wenn strlen(n)>strlen(h)? Da könnte es eng werden.
edit: cool, wenn ich NULL oder 0 ersetze, habe auch 65
C++: |
const char* mss(const char* h, const char* n) { int i=0;while(n[i]&&h[i]==n[i])++i;return n[i]?*h?mss(h+1,n):0:h; }
|
aber ich denke nicht, dass man voraussetzen kann, dass NULL == 0 oder? -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! Dieser Post wurde am 25.08.2005 um 20:51 Uhr von Pablo editiert. |