public class Solution {
static HashMap<Integer, String> map = new HashMap<Integer, String>();
static {
map.put(0,"0");
map.put(1,"1");
map.put(2,"2");
map.put(3,"3");
map.put(4,"4");
map.put(5,"5");
map.put(6,"6");
map.put(7,"7");
map.put(8,"8");
map.put(9,"9");
map.put(10,"A");
map.put(11,"B");
map.put(12,"C");
map.put(13,"D");
map.put(14,"E");
map.put(15,"F");
map.put(16,"G");
map.put(17,"H");
map.put(18,"I");
map.put(19,"J");
map.put(20,"K");
map.put(21,"L");
map.put(22,"M");
map.put(23,"N");
map.put(24,"O");
map.put(25,"P");
map.put(26,"Q");
map.put(27,"R");
map.put(28,"S");
map.put(29,"T");
map.put(30,"U");
map.put(31,"V");
map.put(32,"W");
map.put(33,"X");
map.put(34,"Y");
map.put(35,"Z");
}
public static void main(String[] args) {
System.out.println(getRadix("112")); //expected output: [3, 27, 13, 15]
System.out.println(getRadix("123")); //expected output: [6]
System.out.println(getRadix("5321")); //expected output: []
System.out.println(getRadix("1A")); //expected output: []
}
private static Set<Integer> getRadix(String number){
int chastnoe;
int delimoe;
int ostatok = 1;
boolean flag = true;
Integer intResult;
Integer setNumber;
HashSet<Integer> set = new HashSet<>();
StringBuilder sb =new StringBuilder();
try {
int num = Integer.parseInt(number);
delimoe = num;
for (int delitel = 2; delitel < 36; delitel++){
setNumber = delitel;
while (flag){
chastnoe = delimoe/delitel;
ostatok = delimoe%delitel;
delimoe = chastnoe;
String symbolToAdd = map.get(ostatok);
sb.append(symbolToAdd);
if(chastnoe < delitel){sb.append(chastnoe); flag = false;}
}
sb.reverse();
String result = sb.toString();
if (isPalindrom(result)){set.add(setNumber); }
sb.delete(0, sb.capacity() - 1);
flag = true;
delimoe = num;
}
}catch(NumberFormatException e){
return Collections.EMPTY_SET;
}
return set;
}
private static boolean isPalindrom(String integer){
StringBuilder sb = new StringBuilder(integer);
String revInteger = sb.reverse().toString();
for(int i = 0; i < integer.length(); i++){
if (integer.charAt(i) != revInteger.charAt(i)){return false;}
}
return true;
}
}package com.javarush.task.task30.task3009;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
/*
Палиндром?
*/
public class Solution {
static HashMap<Integer, String> map = new HashMap<Integer, String>();
static {
map.put(0,"0");
map.put(1,"1");
map.put(2,"2");
map.put(3,"3");
map.put(4,"4");
map.put(5,"5");
map.put(6,"6");
map.put(7,"7");
map.put(8,"8");
map.put(9,"9");
map.put(10,"A");
map.put(11,"B");
map.put(12,"C");
map.put(13,"D");
map.put(14,"E");
map.put(15,"F");
map.put(16,"G");
map.put(17,"H");
map.put(18,"I");
map.put(19,"J");
map.put(20,"K");
map.put(21,"L");
map.put(22,"M");
map.put(23,"N");
map.put(24,"O");
map.put(25,"P");
map.put(26,"Q");
map.put(27,"R");
map.put(28,"S");
map.put(29,"T");
map.put(30,"U");
map.put(31,"V");
map.put(32,"W");
map.put(33,"X");
map.put(34,"Y");
map.put(35,"Z");
}
public static void main(String[] args) {
System.out.println(getRadix("112")); //expected output: [3, 27, 13, 15]
System.out.println(getRadix("123")); //expected output: [6]
System.out.println(getRadix("5321")); //expected output: []
System.out.println(getRadix("1A")); //expected output: []
}
private static Set<Integer> getRadix(String number){
int chastnoe;
int delimoe;
int ostatok = 1;
boolean flag = true;
Integer intResult;
Integer setNumber;
HashSet<Integer> set = new HashSet<>();
StringBuilder sb =new StringBuilder();
try {
int num = Integer.parseInt(number);
delimoe = num;
for (int delitel = 2; delitel < 37; delitel++){
setNumber = delitel;
while (flag){
chastnoe = delimoe/delitel;
ostatok = delimoe%delitel;
delimoe = chastnoe;
String symbolToAdd = map.get(ostatok);
sb.append(symbolToAdd);
if(chastnoe < delitel){sb.append(chastnoe); flag = false;}
}
sb.reverse();
String result = sb.toString();
if (isPalindrom(result)){set.add(setNumber); }
sb.delete(0, sb.capacity() - 1);
flag = true;
delimoe = num;
}
}catch(NumberFormatException e){
return Collections.EMPTY_SET;
}
return set;
}
private static boolean isPalindrom(String integer){
StringBuilder sb = new StringBuilder(integer);
String revInteger = sb.reverse().toString();
for(int i = 0; i < integer.length(); i++){
if (integer.charAt(i) != revInteger.charAt(i)){return false;}
}
return true;
}
}