Matlab - agregar una X entre dos letras iguales y

   
Vista:

agregar una X entre dos letras iguales y

Publicado por Aina (15 intervenciones) el 20/02/2010 00:33:24
lo siguiente que quiero hacer es que si dos letras iguales que estan juntas, separarlas con una X y si length(a) es impar le agregare una X tambien para anivelarlo.
He intentado un poco pero no me ha ido muy bien, lo unico que logro es : AB CD EXEGH y lo que quiero lograr es AB CD EX EG HX

a = 'ABCDEEGH';
c = 1;
for i = 1 : 2 : length(a)
b(c : c+1) = a(i : i+1);
b(c+2) = ' ';
c = c +3;
if b(i)==b(i+1)
b(i+2)=b(i+1);
b(i+1)='X';
end
end
b

gracias de antemano para el que me pueda ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:agregar una X entre dos letras iguales y

Publicado por Jorge (226 intervenciones) el 20/02/2010 08:59:01
a = ['ABCDEEGH']
s = length(a);
c = 1;

% Paso 1: incluir X cuando hay letras duplicadas
for i = 1 : s-1
b(c) = a(i);
if a(i) == a(i+1)
t = a(i+1:s);
b = strcat([b(1:c) 'X' t]);
c = c+2;
else
c = c+1;
end
end
% Revisar resultado parcial
b

% Paso 2: incluir X si letra termina sola
if rem(length(b),2) == 1
b(length(b)+1) = 'X';
end
% Revisar resultado parcial
b

% Paso 3: separar en pares
a = b;
c = 1;
for i = 1 : 2 : length(a)
b(c : c+1) = a(i : i+1);
b(c+2) = [' '];
c = c + 3;
end
%Revisar resultado total
b
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agregar una X entre dos letras iguales y

Publicado por Aina (15 intervenciones) el 20/02/2010 10:26:38
muchas gracias por la ayuda.=)
Una pregunta mas tengo: en el paso 1:ero, si yo solamente quisiera ver la letras que estan iguales pero de dos en dos, ejemplo : ABCCDE, se le agrega una X entre las letras C para que no queden juntas cuando se dividen de a par, pero si es asi ACCD no se le agrega X porque al dividirlas no quedan juntas AC CD.
muchisimas gracias de nuevo por la ayuda, yo estoy recien aprendiendo este programa de matlab, me aclaro sola muy poquito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agregar una X entre dos letras iguales y

Publicado por Jorge (226 intervenciones) el 21/02/2010 01:53:13
Estoy incluyendo más comentarios, para explicar mejor una posible solución.
Naturalmente se puede resolver de muchas formas.

a = ['ABCCDE']
i = 1;

% Paso 1: incluir X cuando hay letras duplicadas en pares
while i < length(a)
% Comparar las letras de cada par
if a(i) == a(i+1)
% Si son letras iguales, copiar desde i+1 hasta el final
t = a(i+1 : length(a));
% Actualizar la palabra insertando una X
a = [a(1:i) 'X' t];
end
% Actualizar el indice al par siguiente
i = i + 2;
end
% Revisar resultado parcial
a

% Paso 2: incluir X si letra termina sola
if rem(length(a),2) == 1
a(length(a)+1) = 'X';
end
% Revisar resultado parcial
a

% Paso 3: separar en pares
c = 1;
for i = 1 : 2 : length(a)
b(c : c+1) = a(i : i+1);
b(c+2) = [' '];
c = c + 3;
end
%Revisar resultado total
b
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:agregar una X entre dos letras iguales y

Publicado por Aina (15 intervenciones) el 21/02/2010 18:22:12
muchas gracias por la ayuda.. saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar