JSFiddle - React, Tailwind, and code Playground
HTML
<div id="container"></div>
JavaScript
function test(s1,s2,s3){
var c=document.getElementById("container");
s1=s1.split("");
s2=s2.split("");
s3=s3.split("");
while(s1.length && s2.length){
if(s1[0]!=s3[0] && s2[0]!=s3[0]){
c.innerHTML=c.innerHTML+"false<br>";
return;
}
if(s1[0]!=s2[0] && s1[0]==s3[0]){ // normal case 1
s1.shift();
}else if(s1[0]!=s2[0] && s2[0]==s3[0]){ // normal case 2
s2.shift();
}else if(s1[0]==s1[1] && s1[0]==s2[1]){
s1.shift();
}else if(s1[1]==s3[1]){
s1.shift();
}else{
s2.shift();
}
s3.shift();
}
if(s1.join("")==s3.join("") || s2.join("")==s3.join("")){
c.innerHTML=c.innerHTML+"true<br>";
}else{
c.innerHTML=c.innerHTML+"false<br>";
}
}
test("abcd","xyz","axybczd");
test("xy","xxxy","xxyxxy");
test("acd","bac","bacadc");
test("cacb","cacd","cacacbcd");
test("aa","abaab","aabaaab");
test("xxyyxxab","xxyyxxcd","xxyyxxxaxyybxxcd");
test("accc", "bcbc", "abcccbcc");
test("ab","c","cba");
test("abc","abc","abcabc");
test("abc","abc","abacbc");
test("abc","def","adbecf");
test("aaa","aaa","aaaaaa");
test("aa","ab","abaa");
test("ab","aa","abaa");