这个题目先开始一直没有好的想法。
题目也是看了很久才看懂
师姐先开始的想法很好但是我没有去做。
最后兜了很大一个圈子还是回到了以前的想法
就是模拟的去建一个数然后给每个位置标号没上成一层就加1
然后再从树根上往下扫一遍。然后树根为1每个位置往下的时候加一
然后这个排序就可以了
最后这个题代码由敏哥完成了
1
#include<stdio.h>
2
#include<algorithm>
3
using namespace std;
4
5
struct nn
6

{
7
int dp,m,mark;
8
}pt[10010];
9
10
int len,t;
11
char str[11000];
12
13
void di(int deep)
14

{
15
pt[t].dp = deep;
16
pt[t].m = str[len];
17
pt[t++].mark = t;
18
if(str[len] >= 'A' && str[len] <= 'Z')
19
{
20
len--;
21
di(deep+1);
22
di(deep+1);
23
return;
24
}
25
if(str[len] >= 'a' && str[len] <= 'z')
26
{
27
len--;
28
return;
29
}
30
}
31
32
int cmp(nn a, nn b)
33

{
34
if(a.dp != b.dp)
35
return a.dp > b.dp;
36
else
37
return a.mark < b.mark;
38
}
39
40
int main()
41

{
42
int n,i;
43
scanf("%d", &n);
44
while(n--)
45
{
46
scanf("%s",str);
47
len = strlen(str)-1;
48
t = 0;
49
di(0);
50
sort(pt,pt+t,cmp);
51
for(i = 0; i < t; i++)
52
printf("%c",pt[i].m);
53
printf("\n");
54
}
55
return 0;
56
}
57
58