import
java.io.*;
import
java.lang.*;
import
java.util.*;
class
GFG {
static
String decHex(
int
n)
{
char
alpha[] = {
'A'
,
'B'
,
'C'
,
'D'
,
'E'
,
'F'
};
StringBuilder ans =
new
StringBuilder(
""
);
while
(n >
0
) {
if
(n %
16
<
10
) {
ans.append(Integer.toString(n %
16
));
}
else
{
ans.append(alpha[n %
16
-
10
]);
}
n /=
16
;
}
ans = ans.reverse();
return
ans.toString();
}
static
int
hexDec(String convertedHex)
{
char
mp[] = {
10
,
11
,
12
,
13
,
14
,
15
};
int
ans =
0
;
int
pos =
0
;
StringBuilder s =
new
StringBuilder(convertedHex);
convertedHex = s.reverse().toString();
for
(
char
ch : convertedHex.toCharArray()) {
if
(Character.isDigit(ch)) {
ans += ((
int
)Math.pow(
16
, pos))
* (ch -
'0'
);
}
else
{
ans += ((
int
)Math.pow(
16
, pos))
* mp[ch -
'A'
];
}
pos +=
1
;
}
return
ans;
}
static
String removeChars(String hexaVal, String S)
{
HashSet<Character> setk =
new
HashSet<>();
for
(
char
ch : S.toCharArray()) {
setk.add(ch);
}
String ans =
""
;
for
(
char
ch : hexaVal.toCharArray()) {
if
(setk.contains(ch)) {
continue
;
}
ans += ch;
}
return
ans;
}
static
void
convertArr(
int
arr[], String S)
{
for
(
int
i =
0
; i < arr.length; i++) {
String hexaVal = decHex(arr[i]);
String convertedHex = removeChars(hexaVal, S);
int
decVal = hexDec(convertedHex);
arr[i] = decVal;
}
for
(
int
val : arr) {
System.out.print(val +
" "
);
}
}
public
static
void
main(String[] args)
{
int
arr[] = {
74
,
91
,
31
,
122
};
String S =
"1AB"
;
convertArr(arr, S);
}
}