题意:
这道题其实不难,就是题意容易理解跑偏了。给你一串字符串,你可以选择一个字符“<",删除它左边的字符;你也可以选择字符“>"删去它右边的字符。现在想得到字符串都是由一样的字符组成,***但问的是***在进行上述操作之前他要删去至少多少个字符才能满足题意。
思路:
正确理解了题意,那就很简单了。在第一个>左边的字符你都无法改变,最后一个<右边的字符你也无法改变。所以只要找到两者的位置,判断哪个小,哪个就是答案。
代码:
#include<iostream>
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
int main()
{
int n;
cin >> n;
while(n--)
{
int t;
string k;
cin >> t;
cin >> k;
if(k[0] == '>')
{
cout << "0" << endl;
continue;
}
else if(k[k.length()-1]=='<')
{
cout << "0" << endl;
continue;
}
else
{
int sum1 = k.length()-1;
for(int i = 0 ; i < k.length() ; i++)
{
if(k[i] == '>')
{
sum1 = i;
break;
}
}
int sum2 = k.length() ;
for(int i = k.length()-1 ; i >=0 ; i--)
{
if(k[i] == '<')
{
sum2 = k.length()-i-1;
break;
}
}
printf("%d\n",min(sum1,sum2));
}
}
return 0;
}