经典指数          
原因
1541
浏览数
0
收藏数
 

#include #include using namespace std; #define MAX 100 void solve(char first[], int spos_f, int epos_f, char mid[], int spos_m, int epos_m) {     int i, root_m;     if (spos_f > epos_f)         return;     for (i = spos_m; i <= epos_m; i++)         if (first[spos_f] == mid[i]) {             root_m = i;             break;         }     solve(first, spos_f + 1, spos_f + (root_m - spos_m), mid, spos_m, root_m - 1);     solve(first, spos_f + (root_m - spos_m) + 1, epos_f, mid, root_m + 1, epos_m);     cout << first[spos_f]; } int main(void) {     char first[MAX], mid[MAX];     int len;     cin >> len;     cin >> first >> mid;     solve(first, 0, len - 1, mid, 0, len - 1);     cout << endl;     return 0; } 输入:  7 ABDCEGF BDAGECF 输出:______________________1______________

     举报   纠错  
 
切换
暂时还没有答案,欢迎分享你的解答 . . .
撰写答案
扫描后移动端查看本题