<script>
const MAX = 26;
function
printAnagramAndChanges(X, Y)
{
var
countx =
new
Array(MAX).fill(0);
var
county =
new
Array(MAX).fill(0);
var
ctrx =
new
Array(MAX).fill(0);
var
ctry =
new
Array(MAX).fill(0);
var
change = 0;
var
l = X.length;
for
(
var
i = 0; i < l; i++) {
countx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)]++;
county[Y[i].charCodeAt(0) -
"A"
.charCodeAt(0)]++;
}
for
(
var
i = 0; i < MAX; i++) {
if
(countx[i] > county[i]) {
ctrx[i] += countx[i] - county[i];
}
else
if
(countx[i] < county[i]) {
ctry[i] += county[i] - countx[i];
}
change += Math.abs(county[i] - countx[i]);
}
for
(
var
i = 0; i < l; i++) {
if
(ctrx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)] === 0)
{
continue
;
}
var
j;
for
(j = 0; j < MAX; j++) {
if
(ctry[j] > 0) {
break
;
}
}
if
(
countx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)] ===
ctrx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)] ||
X[i].charCodeAt(0) -
"A"
.charCodeAt(0) > j
) {
countx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)]--;
ctrx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)]--;
ctry[j]--;
X[i] = String.fromCharCode(
"A"
.charCodeAt(0) + j);
}
else
{
countx[X[i].charCodeAt(0) -
"A"
.charCodeAt(0)]--;
}
}
document.write(
"Anagram : "
+ X.join(
""
) +
"<br>"
);
document.write(
"Number of changes made : "
+ change / 2);
}
var
x =
"CDBABC"
,
y =
"ADCABD"
;
printAnagramAndChanges(x.split(
""
), y.split(
""
));
</script>