No es fácil de plantear y supongo que hay varias maneras de hacerlo. Aquí te dejo lo que he pensado como pseudocódigo:
fun dimeSiEsMAlternante (numero) {
profundidadDeBusqueda = 2;
cumpliendo = true;
Si EsPar (extraerDigito (1, numero)) Entonces comprobandoActualmente = Impar
Si EsImpar (extraerDigito (1, numero)) Entonces comprobandoActualmente = Par
contador = 1;
mientras contador <= (CantidadDeDigitos(numero) - ProfundidadDeBusqueda)
Desde j = 1 hasta profundidadDeBusqueda
Si cumpliendo == true
Si Comprobar(extraerDigito (contador+j, numero), comprobandoActualmente) == true
cumpliendo = true;
Sino
cumpliendo = false;
FinSi
FinSi
FinDesde
contador = contador + profundidadDeBusqueda;
profundidadDeBusqueda = profundidadDeBusqueda +1;
comprobandoActualmente = opuestoDe(comprobandoActualmente)
finMientras
Si cumpliendo == true Entonces Mostrar "El número es m-alternante" Sino Mostrar "El número no es m-alternante".
}
Supongamos que entramos con el número: 122357
La comprobación inicial devuelve que el primer dígito es impar, por lo que comprobandoActualmente = Par
Entramos en el bucle mientras con contador =1 , cantidadDeDigitos(numero) = 6
Entramos en bucle desde j =1 hasta 2
extraemos el dígito contador+j = 2 y comprobamos que es par por lo que cumpliendo = true
extraemos el dígito contador + j = 3 y comprobamos que es par lo que cumpliendo = true
Salidmos del bucle desde
contador ahora vale 1+2 = 3
profundidadDeBusqueda ahora vale 3
comprobandoActualmente ahora vale Impar
Entramos en bucle mientras con contador =3, cantidadDeDigitos(numero) = 6, profundidadDeBusqueda = 3
Entramos en bucle desde j = 1 hasta 3
Extraemos el dígito contador+1 = 4 y comprobamos si es impar, efectivamente lo es y cumpliendo = true
Extraemos el dígito contador + 2 = 5 y comprobamos si es impar, efectivamente lo es y cumpliendo = true
Extraemos el dígito contador + 3 = 6 y comprobamos si es impar, efectivamente lo es y cumpliendo = true
Salimos del bucle desde
Ahora contador = 3 + 3 = 6
Ahora profundidadDeBusqueda = 4
Ahora comprobandoActualmente vale Par
En el bucle mientras contador vale 6, cantidadDeDigitos(numero) = 6, profundidadDeBusqueda = 4
No se cumple la condición y salimos del bucle
Se muestra "El número es m-alternante"