_SWIM_
BAN USER//if strings have duplicates
// start both the calls, one should return 1
int isInterleaved(char* stringA,char* stringB,char* stringC, int pA, int pB, int pC)
{
if( (stringA[pA]=='\0') && (stringB[pB]=='\0') && (stringC[pC]=='\0') )
{
return 1;
}
if( (stringA[pA]!=stringC[pC]) && (stringB[pB]!=stringC[pC]) )
{
return 0;
}
if( (stringA[pA]==stringC[pC]) && (stringB[pB]==stringC[pC]) )
{
return isInterleaved(stringA,stringB,stringC,pA+1,pB,pC+1)||isInterleaved(stringA,stringB,stringC,pA,pB+1,pC+1);
}
if(stringA[pA]==stringC[pC])
{
return isInterleaved(stringA,stringB,stringC,pA+1,pB,pC+1);
}
if(stringB[pB]==stringC[pC])
{
return isInterleaved(stringA,stringB,stringC,pA,pB+1,pC+1);
}
return 0;
}
- _SWIM_ January 03, 2013