5 votos

demostrando algoritmo para verificar si dos cadenas son anagramas-

Tengo la idea (en el lenguaje C) para el control de cadena de dos si son anagramas-

  1. si la longitud de la cuerda es la misma (su única a-z y a-Z).

  2. suma de valor ASCII de todos los caracteres de una cadena es el mismo para ambas cadenas.

  3. la multiplicación de valor ASCII de todos los caracteres de una cadena es el mismo para ambas cadenas.

Creo que si todos los tres son correctas debe ser un anagrama, pero no puedo probarlo.. ya que no tengo experiencia en las matemáticas.. ¿se puede probar o contradicen?

(otras soluciones para este problema no necessery)

8voto

mjqxxxx Puntos 22955

Un mínimo de contraejemplo es "BPT" (ASCII $66$, $80$, $84$) y "FHX" (ASCII $70$, $72$, $88$). Son de la misma longitud, las sumas son tanto $230$, y los productos son tanto $443520$. Como se mencionó en la otra respuesta, usted probablemente tendrá todos los $n$ simétrica de las funciones de los códigos ASCII para identificar correctamente a todos los no-anagrammatic pares de longitud $n$. Por ejemplo, para $n=3$, además de a$x_1+x_2+x_3$$x_1 x_2 x_3$, puede incluir $x_1 x_2 + x_1 x_3 + x_2 x_3$ en su "clave".

0voto

lhf Puntos 83572

Si la cadena tiene una longitud de $n$, lo más probable es necesidad de todos los $n$ simétrica de las funciones de los caracteres, apenas el dos de usted menciona no lo hacen.

Trate de encontrar un ejemplo con $n=3$.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X