public boolean isInterleavedRecursive(char str1[], char str2[], char str3[],int pos1, int pos2, int pos3){
        if(pos1 == str1.length && pos2 == str2.length && pos3 == str3.length){
            return true;
        }
        
        if(pos3 == str3.length){
            return false;
        }
        
        return (pos1 < str1.length && str1[pos1] == str3[pos3] && isInterleavedRecursive(str1, str2, str3, pos1+1, pos2, pos3+1))
                || (pos2 < str2.length && str2[pos2] == str3[pos3] && isInterleavedRecursive(str1, str2, str3, pos1, pos2+1, pos3+1));
        
    }
http://www.geeksforgeeks.org/check-whether-a-given-string-is-an-interleaving-of-two-other-given-strings-set-2/
src/com/interview/dynamic/TwoStringInterleavingToFormThird.java