pmav99 έγραψε:Άντε να βάλω και εγώ μία εύκολη.
Να γραφεί συνάρτηση που να λαμβάνει 2 ορίσματα τύπου string και να επιστρέφει Τrue αν τα strings αποτελούνται από ακριβώς τα ίδια γράμματα.
πχ "AaaaBbbbCccc" και "AaBbCc" επιστρέφει True
πχ "AaaaBBbbbC" και "AaBbCc" επιστρέφει False
Σε python είναι one-liner (ευανάγνωστο κιόλας) και μάλιστα χρησιμοποιώντας μονο built-ins!
Το τεστάρισα μόνο με τα συγκεκριμένα strings. Σε C λοιπόν...
- Κώδικας: Επιλογή όλων
int s_samechars( const char *s, const char *t)
{
const char *savs = s, *savt = t;
for (; *s || *t; s++, t++) {
if ( *s && !strchr(savt, *s) )
return 0;
if ( *t && !strchr(savs, *t) )
return 0;
}
return 1;
}
Και ένα πρόγραμμα που τη χρησιμοποιεί...
- Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <string.h>
// -----------------------------------------------------------------------------------
int s_samechars( const char *s, const char *t)
{
const char *savs = s, *savt = t;
for (; *s || *t; s++, t++) {
if ( *s && !strchr(savt, *s) )
return 0;
if ( *t && !strchr(savs, *t) )
return 0;
}
return 1;
}
// -----------------------------------------------------------------------------------
int main( void )
{
char s1[] = "AaaaBbbbCccc" s2[] = "AaBbCc";
char s3[] = "AaaaBBbbbC", s4[] = "AaBbCc";
printf("%d\n", s_samechars( s1, s2 ) );
printf("%d\n", s_samechars( s3, s4 ) );
return 0;
}