PUERTA | Puerta TI 2005 | Pregunta 53

La siguiente función de C toma dos strings ASCII y determina si una es un anagrama de la otra. Un anagrama de una string s es una string obtenida permutando las letras en s.

int anagram (char *a, char *b) {
int count [128], j;
for (j = 0;  j < 128; j++) count[j] = 0;
j = 0;
while (a[j] && b[j]) {
A;
B;
}
for (j = 0; j < 128; j++) if (count [j]) return 0;
return 1;
}

Elija la alternativa correcta para las declaraciones A y B.
(A) A : cuenta [a[j]]++ y B : cuenta [b[j]]–
(B) A : cuenta [a[j]]++ y B : cuenta[b[j]]++
(C) A : cuenta [a[j++]]++ y B : cuenta[b[j]]–
(D) A : cuenta [a[j]]++ y B : contar[b[j++]]–

Respuesta: (D)
Explicación:

#include <stdio.h>
char a[100], b[100];
int main(void) {
 int flag;
  printf("Enter first string\n");
 gets(a);
  printf("Enter second string\n");
 gets(b);
  flag = anagram(a, b);
  if (flag == 1)
 printf("\"%s\" and \"%s\" are anagrams.\n", a, b);
 else
 printf("\"%s\" and \"%s\" are not anagrams.\n", a, b);
  return 0;
return 0;
}
int anagram (char *a, char *b) {
int count [128], j;
for (j = 0; j < 128; j++) count[j] = 0;
j = 0;
while (a[j] && b[j]) {
count [a[j]]++;
count[b[j++]]--;
}
for (j = 0; j < 128; j++) if (count [j]) return 0;
return 1;
}

Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *