Orden del diccionario HDU
Entrada->Salida
ABC CBA->AB2CBA
CBA->Liga Profesional de Baloncesto Masculino Chino
Mi código es el siguiente (c++):
# include & ltiostream & gt
# include & ltstring& gt
Usar espacio de nombres std p>
int main(){
Cadena str
int n, I, suma
scanf ("% d", & ampn);
mientras(n-){
CIN>>str
int len = str.length();
if (len == 1) { cout & lt; & ltstr & lt& ltendl continuar }
suma = 1;
for (I = 1; i & ltleni++){
if( I == len-1){
if(str【I】== str【I-1】)cout & lt;& lt++ suma & lt;& ltstr 【I】;
En caso contrario{
if (sum == 1) cout & lt;& ltstr【I-1】& lt;& ltstr【I】;
else cout & lt& ltsum<& ltstr【I-1】& lt;& ltstr【I】;
}
Descanso;
}
if ( str[I] = = str[I-1]) suma++;
De lo contrario {
if (suma == 1) cout & lt & ltstr【I-1】;
else cout & lt& ltsum<& ltstr【I-1】
suma = 1;
cout & lt& ltendl
}
Return 0;
}
La verdad, lo he hecho tres veces porque mi entendimiento es el mismo que el tuyo. . . Todavía hay muchos lugares en su código que se pueden optimizar, como b[I] = 65+I, que se puede escribir como b = 'A'+I, lo que ocupará menos memoria. Espero que ayude.