裸搜索,然后处理下范围就行,代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char middle[9], last[9];
void srch(int m_s, int m_e, int l_s, int l_e)
{
int i;
for(i = m_s; i <= m_e; i++){
if(middle[i] == last[l_e]){
break;
}
}
printf("%c", last[l_e]);
if(m_s != i){
srch(m_s, i - 1, l_s, l_s + i - m_s - 1);
}
if(m_e != i){
srch(i + 1, m_e, l_s + i - m_s, l_e - 1);
}
}
int main(int argc, char **argv)
{
int len;
scanf("%s%s", middle, last);
len = strlen(middle);
srch(0, len - 1, 0, len - 1);
printf("\n");
return 0;
}