Solución
solution.tsTypeScript
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.Collectors;
public class Solution {
public String convertToBase(int num, int base) {
Map<Integer, String> bases = new HashMap<>();
// Rellenamos el mapa del 10 al 35
for (int i = 10; i <= 35; i++) {
char letra = (char) ('a' + (i - 10));
bases.put(i, String.valueOf(letra));
}
if (num == 0) {
return "0";
}
int cociente = num;
List<String> conversion = new ArrayList<>();
// Cambiado a > 0 para capturar todos los dígitos
while (cociente > 0) {
int resto = cociente % base;
cociente = cociente / base;
conversion.add(getConversion(resto, bases));
}
// 1. Invertimos la lista correctamente (es void)
Collections.reverse(conversion);
// 2. Aplicamos el stream sobre la lista ya invertida
return conversion.stream()
.map(String::valueOf)
.collect(Collectors.joining());
}
public String getConversion(int resto, Map<Integer, String> base){
if (resto <= 9)
return String.valueOf(resto);
else
return base.get(resto);
}
}0respuestas