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
#include 
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')
				{
					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;
}

 

你可能感兴趣的:(思维)