import
java.util.*;
class
GFG {
public
static
int
minCountUtil(String A, String B,
HashMap<Character, Integer> ele,
int
ans,
int
ind)
{
if
(ind == A.length()) {
ans = Math.min(ans, ele.size());
return
ans;
}
char
[] a = A.toCharArray();
char
[] b = B.toCharArray();
char
temp = a[ind];
a[ind] = b[ind];
b[ind] = temp;
A =
new
String(a);
B =
new
String(b);
if
(ele.containsKey(A.charAt(ind))) {
ele.put(A.charAt(ind),
ele.get(A.charAt(ind)) +
1
);
}
else
{
ele.put(A.charAt(ind),
1
);
}
ans = minCountUtil(A, B, ele, ans, ind +
1
);
ele.put(A.charAt(ind), ele.get(A.charAt(ind)) -
1
);
if
(ele.get(A.charAt(ind)) ==
0
) {
ele.remove(A.charAt(ind));
}
temp = a[ind];
a[ind] = b[ind];
b[ind] = temp;
A =
new
String(a);
B =
new
String(b);
if
(ele.containsKey(A.charAt(ind))) {
ele.put(A.charAt(ind),
ele.get(A.charAt(ind)) +
1
);
}
else
{
ele.put(A.charAt(ind),
1
);
}
ans = minCountUtil(A, B, ele, ans, ind +
1
);
ele.put(A.charAt(ind), ele.get(A.charAt(ind)) -
1
);
if
(ele.get(A.charAt(ind)) ==
0
) {
ele.remove(A.charAt(ind));
}
return
ans;
}
public
static
int
minCount(String A, String B)
{
int
ans = A.length();
HashMap<Character, Integer> ele =
new
HashMap<>();
return
minCountUtil(A, B, ele, ans,
0
);
}
public
static
void
main(String[] args)
{
String A =
"abaaa"
;
String B =
"bbabb"
;
System.out.println(minCount(A, B));
}
}