Ho scritto una soluzione del problema in C, però non prenderla per oro colato.Potrebbe non essere giusta per tutti gli input.
Comunque ti suggerisco di provare a scrivere una soluzione tua.
codice:
int find(char *s1, char elem)
{
int index=-1;
for(int i=0;i<strlen(s1) && index==-1;i++)
{
if(s1[i]==elem)
index=i;
}
return index;
}
int main(int argc, char **argv)
{
char buf1[LENGTH],buf2[LENGTH];
bool ok=true;
int *v1,*v2;
input(buf1);
input(buf2);
v1=(int*)malloc(strlen(buf1)*sizeof(int));
v2=(int*)malloc(strlen(buf2)*sizeof(int));
for(int i=0;i<strlen(buf1);i++)
v1[i]=i;
for(int i=0;i<strlen(buf2);i++)
v2[i]=find(buf1,buf2[i]);
for(int i=0;i<strlen(buf2)-1 && ok;i++)
{
if(v2[i]>v2[i+1] || v2[i]==-1)
ok=false;
}
printf("%d\n",ok);
free(v1);
free(v2);
return 0;
}