问题描述
你自豪地拥有 n 根棍子。每根棍子有一个从 1 到 n 的整数长度,所有棍子的长度互不相同。
你想将这些棍子排成一行。有一个长度为 n−1 的字符串 s,描述了排列的要求。
具体来说,对于每个 i 从 1 到 n−1:
- 若 si=<,则位置 i+1 的棍子长度必须小于它之前的所有棍子;
- 若 si=>,则位置 i+1 的棍子长度必须大于它之前的所有棍子。
请找出任意一个合法的棍子排列。可以证明解总是存在的。
输入格式
每个测试包含多个测试用例。第一行包含一个整数 t (1≤t≤500),表示测试用例的数量。接下来是各测试用例的描述。
每个测试用例的第一行包含一个整数 n (2≤n≤100) — 棍子的数量。
第二行包含一个长度为 n−1 的字符串 s,仅由字符 < 和 > 组成 — 描述了排列的要求。
输出格式
对于每个测试用例,输出 n 个整数 a1,a2,…,an (1≤ai≤n,且 ai 互不相同) — 依次表示棍子的长度。如果存在多解,输出任意一个即可。
5
2
<
5
<<><
2
>
3
<>
7
><>>><
2 1
4 3 2 5 1
1 2
2 1 3
3 4 2 5 6 7 1
样例说明
在第一个测试用例中,排列要求如下:
- s1=<,意味着 a2 小于 a1。
因此,一种可能的排列是 [2,1]。
在第二个测试用例中,排列要求如下:
- s1=<,意味着 a2 小于 a1;
- s2=<,意味着 a3 小于 a1 和 a2;
- s3=>,意味着 a4 大于 a1、a2 和 a3;
- s4=<,意味着 a5 小于 a1、a2、a3 和 a4。
因此,一种可能的排列是 [4,3,2,5,1]。