<script>
function
generatePalindrome(S)
{
let Hash=
new
Map();
for
(let ch=0;ch< S.length;ch++) {
if
(!Hash.has(S[ch]))
Hash.set(S[ch],1);
else
{
Hash.set(S[ch],Hash.get(S[ch])+1)
}
}
let st=
new
Set();
for
(let i =
'a'
.charCodeAt(0); i <=
'z'
.charCodeAt(0); i++) {
if
(Hash.get(String.fromCharCode(i)) == 2) {
for
(let j =
'a'
.charCodeAt(0); j <=
'z'
.charCodeAt(0); j++) {
let s =
""
;
if
(Hash.get(String.fromCharCode(j)) && i != j) {
s += String.fromCharCode(i);
s += String.fromCharCode(j);
s += String.fromCharCode(i);
st.add(s);
}
}
}
if
(Hash.get(String.fromCharCode(i)) >= 3) {
for
(let j =
'a'
.charCodeAt(0);
j <=
'z'
.charCodeAt(0); j++) {
let s =
""
;
if
(Hash.get(String.fromCharCode(j))) {
s += String.fromCharCode(i);
s += String.fromCharCode(j);
s += String.fromCharCode(i);
st.add(s);
}
}
}
}
for
(let item of st.values()) {
document.write(item+
"<br>"
)
}
}
let S =
"ddabdac"
;
generatePalindrome(S);
</script>