B. Good String

output

standard output

You have a string $$$s$$$ of length $$$n$$$ 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 - 1$$$, but not the whole string). You need to calculate the minimum number of characters to be deleted from string $$$s$$$ so that it becomes good.

Input

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

The first line of $$$i$$$-th test case contains one integer $$$n$$$ ($$$1 \le n \le 100$$$) – the length of string $$$s$$$.

The second line of $$$i$$$-th test case contains string $$$s$$$, consisting of only characters > and <.

Output

For each test case print one line.

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

Example

input

Copy

3
2
<>
3
><<
1
>

output

Copy

1
0
0

Note

In the first test case we can delete any character in string <>.

In the second test case we don't need to delete any characters. The string > < < is good, because we can perform the following sequence of operations: > < < $$$\rightarrow$$$ < < $$$\rightarrow$$$ <.

题意:

想办法用最少的办法使括号朝向一个方向

思路:找到最左边的>和最右边的<判断哪个最小就是最短本办法

#include<iostream>
#include<cstdio> 
using namespace std;
int main()
{
	int n;
	scanf("%d",&n);
	while(n--)
	{
		int g;string h;
		scanf("%d",&g);
		cin>>h;
		if(h[0] == '>')
		{
			printf("0\n");continue;
		}
		else if(h[h.length()-1] == '<'){
			printf("0\n");continue;
		}
		else{
			int sum1 = h.length()-1;
			for(int i=0;i<h.length();++i)
			{
				if(h[i] == '>')
				{
					sum1 = i;break;
				}
			}	
			int sum2 = h.length()-1;
			for(int i=h.length()-1;i>=0;--i)
			{
				if(h[i] == '<')
				{
					sum2 = h.length()-1-i;break;
				}
			}
			printf("%d\n",min(sum1,sum2));
			
		}
		
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-lyslyslys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值