CSP-M1 A título

Significado de las preguntas:
cuco Este es un niño juguetón, un día, se puso un anillo mágico de las antiguas ruinas. El anillo formado por las letras a tope anulares. Inicialmente puntos para poner letras a, el puntero puede ser girada hacia la derecha o giro a la izquierda, como un giro a la derecha a la B, o la rotación en sentido antihorario para z. . Este cuco manos de una cadena, pero es tonto, por lo que iba a venir a ti por ayuda, pregunta cuántas veces requiere un mínimo de turno. Aquí Insertar imagen Descripción
Entrada:
introduzca una cadena.
Salida:
salida requerida número mínimo de revoluciones.
Ejemplo de entrada:
hezt
Ejemplo de salida:
31 es
la idea:
Introduzca una matriz de memoria de letras, cada letra de la matriz mediante la conversión de la ubicación marcada letras. Longitud de la cadena de entrada se va a determinar es la entrada, se hace circular determinación, si el personaje 13 es menor que o igual distancia desde el punto de partida de la matriz inicial, una descripción distancia en sentido horario pequeña, el punto de inicio de recuento y las matrices de caracteres juntos donde poco de diferencia, marcar esto como una matriz de caracteres después del punto de partida. Si la distancia es mayor que 13, entonces esa distancia la rotación en sentido antihorario es pequeño, el recuento más el número de pasos para ir hacia la izquierda, el punto de partida de una matriz de cambios caracteres para este fin. El número de pasos resultantes de salida después del final del último ciclo.
Los intentos previos sin mapa de la conversión, sólo la matriz de memoria directa, toda la matriz se determina a través de la operación de cambio izquierdo, pero los tres puntos oj hacer la vida difícil. Esta representación se puede cambiar para el éxito.
código:

#include<iostream>
#include<cstring>
#include<map>
#include<algorithm>
using namespace std;
map<char,int> am;
int main()
{
 am['a']=0;
 am['b']=1;
 am['c']=2;
 am['d']=3;
 am['e']=4;
 am['f']=5;
 am['g']=6;
 am['h']=7;
 am['i']=8;
 am['j']=9;
  am['k']=10;
 am['l']=11;
 am['m']=12;
 am['n']=13;
 am['o']=14;
 am['p']=15;
 am['q']=16;
 am['r']=17;
 am['s']=18;
 am['t']=19;
 am['u']=20;
 am['v']=21;
 am['w']=22;
 am['x']=23;
 am['y']=24;
 am['z']=25;
  string a;
 cin>>a;
 
 int count=0;
 int op=0;
 int oi=0;
 //for(int i=0;i<length;i++)
 for(int i=0;i<a.length();i++)
 {
  op=am[a[i]];
  if(abs(op-oi)<=13)
  {
   count=count+abs(op-oi);
   oi=op;
  }
  else if(abs(op-oi)>13)
  {
   count=count+26-abs(op-oi);
   oi=op;
  }
   }
 cout<<count;
 return 0;
}
Se han publicado 19 artículos originales · ganado elogios 0 · Vistas 214

Supongo que te gusta

Origin blog.csdn.net/weixin_45117273/article/details/104982259
Recomendado
Clasificación