codeforce B. Good String

题意:
这道题其实不难,就是题意容易理解跑偏了。给你一串字符串,你可以选择一个字符“<",删除它左边的字符;你也可以选择字符“>"删去它右边的字符。现在想得到字符串都是由一样的字符组成,***但问的是***在进行上述操作之前他要删去至少多少个字符才能满足题意。
思路:
正确理解了题意,那就很简单了。在第一个>左边的字符你都无法改变,最后一个<右边的字符你也无法改变。所以只要找到两者的位置,判断哪个小,哪个就是答案。
代码:

#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;
 } 
发布了107 篇原创文章 · 获赞 3 · 访问量 7098

猜你喜欢

转载自blog.csdn.net/qq_43504141/article/details/104639516