Good String
time limit per test 1 second memory limit per test 256 megabytes
题目链接http://codeforces.com/problemset/problem/1140/B
emmm,题目大意:给你一个尖括号序列,你可以进行操作,你可以选择其中一个,假如选择’>‘那么你可以删去它右边的一个字符,’<'则是左边的。假设一个good string 是一个单一形态的串。在进行选择之前你可以删去一些字符。问你最少删去多少个字符可使得给定的序列在操作之后为good string。
首先我们考虑什么情况下不要删字符: 1.当第一个字符为‘>’的时候,我们可以将后面的序列全部删除所以不需要删除 2.当最后一个字符为‘<’的时候同1理
那么我们所需要的就是将序列变成首字符为‘>’ 或尾字符为‘<’那么就只需要将第一个‘>’之前的全部删掉,或最后一个‘<’之后的全删的就行了。
以下是AC代码:
#include <bits/stdc++.h>
using namespace std
;
char s
[150];
int main()
{
int t
,n
;
scanf
("%d",&t
);
while (t
--){
scanf
("%d",&n
);
scanf
("%s",s
+1);
if (n
==1) printf
("0\n");
else if (s
[1]=='>' || s
[n
]=='<') printf
("0\n");
else {
int head
=1,num
=0;
while (s
[head
]=='<') head
++;
head
--;
int tail
=n
;
while (s
[tail
]=='>') tail
--,num
++;
if (head
==n
||num
==n
) printf
("0\n");
else printf
("%d\n",min(head
,num
));
}
}
return 0;
}