Description

You have a string ss of length nn consisting of only characters > and <. You may do some operations with this string, for each operation you have to choose some character that still remains in the string. If you choose a character >, the character that comes right after it is deleted (if the character you chose was the last one, nothing happens). If you choose a character <, the character that comes right before it is deleted (if the character you chose was the first one, nothing happens).

For example, if we choose character > in string > > < >, the string will become to > > >. And if we choose character < in string > <, the string will become to <.

The string is good if there is a sequence of operations such that after performing it only one character will remain in the string. For example, the strings >, > > are good.

Before applying the operations, you may remove any number of characters from the given string (possibly none, possibly up to n−1n−1, but not the whole string). You need to calculate the minimum number of characters to be deleted from string ss so that it becomes good.

Input

The first line contains one integer tt (1≤t≤1001≤t≤100) – the number of test cases. Each test case is represented by two lines.

The first line of ii-th test case contains one integer nn (1≤n≤1001≤n≤100) – the length of string ss.

The second line of ii-th test case contains string ss, consisting of only characters > and <.

Output

For each test case print one line.

For ii-th test case print the minimum number of characters to be deleted from string ss so that it becomes good.

Example

Input

3

2

<>

3

><<

1

>

Output

1

0

0

题目分析

给一个由'>' '<' 组成的字符串,对于'>'可以删除这个字符右边的字符(想到这里,如果'>'在最左边,岂不是可以一次性把右边所有的全部删除),同样,对于'<'可以删除这个字符左边的字符(如果'<'在最右边,也可以将其左边所有的字符全部删除),题目要求通过上面两种变化使得整个字符串只剩下一个字符'>‘或'<',那么根据上面的推理,我们只需要找到最左边的'>'就可以让其后的所有字符全部消失,那么我们只需要删除在'>’左边的所有'<'即可;同理,我们只需要找到最右边的'<'就可以让这个字符前面的所有字符全部消失,那么我们只需要删除在'<’右边的所有>'即可。

由于找到最左边的'>'和最右边的'<'都可以完成任务,所以我们需要这两种解法种需要删除的最小字符,然后输出即可。

代码区

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include <vector>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int Max = 5e5 + 5; char str[Max]; int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n;
scanf("%d", &n);
scanf("%s", str);
if (n == 1)
{
printf("0\n");
continue;
}
int nl = 0, nr = n - 1, x = 0, y = 0;
while (str[nl] == '<')nl++, x++; //找到自左边开始的第一个>号,就可以让这个>号之后的字符全部自动删除,这就是说我们将这个>之前的<全部删除即可
while (str[nr] == '>')nr--, y++; //找到自右边开始的第一个<号,就可以让这个<号之前的字符全部自动删除,这就是说我们将这个<之后的>全部删除即可
int m = x < y ? x : y;
printf("%d\n", m);
}
return 0;
}

最新文章

  1. .NET基础面试题整理
  2. 输出单向链表中倒数第k个结点
  3. Oracle等待事件db file parallel read
  4. [二分图&amp;最小割]
  5. C++@冒号(:)和双冒号(::)的用法
  6. [转]chrome技术文档列表
  7. SPOJ SUBLEX 7258. Lexicographical Substring Search
  8. phpstudy本地搭建域名访问
  9. java中equals相同,hashcode一定相同ma
  10. Python并发编程-RabbitMQ消息队列
  11. LeetCode算法题-Minimum Moves to Equal Array Elements(Java实现)
  12. luogu 1731 搜索剪枝好题
  13. python 读取文本文档中的数据
  14. GIT回滚master分支到指定tag版本
  15. ZOL 3977. Pointers
  16. jQuery之end()和pushStack()
  17. OutputStreamWriter与InputStreamReader(转换流)
  18. 基于uFUN开发板的RGB调色板
  19. MYSQL一次千万级连表查询优化
  20. 部署Spring web项目遇到的问题及解决方案

热门文章

  1. C# 选择文件夹 选择文件
  2. BZOJ 4154: [Ipsc2015]Generating Synergy KDtree+dfs序
  3. 【BZOJ5415&amp;UOJ393】归程(Kruskal重构树,最短路)
  4. Spring配置文件beans标签报错问题解决
  5. Hive SQL 语法学习与实践
  6. spark 笔记 16: BlockManager
  7. spark 笔记 10: TaskScheduler相关
  8. linux挂载问题
  9. C# Selenium FireFox 接入阿布云
  10. CMake下,某些选项的后调整