下笔春蚕食叶声。

题解 CF712B 【Memory and Trident】

因为要回到原点,所以有多少L就必须要有多少R,同理有多少U就必须要有多少D

所以我们知道奇数长度的不可能,直接输出-1

我们一定要统计一下各种字母的数量,

算出了 l,r字母数的差lr 和 u,d字母数的差ud

然后再进行+、-、*、/and绝对值

所以我们就开始找规律

最后通过样例的数据我试出答案应该是(abs(abs(l-r)+abs(u-d)))/2

然后上代码:

#include<bits/stdc++.h>//万能库
using namespace std;
int main()
{
	string s;//定义
	cin>>s;
	int len=s.size();
	if(len%2==1)
	{
		printf("-1\n");
		return 0;
	}//长度奇数不可能
	int l=0,r=0,u=0,d=0;
	for(int i=0;i<len;i++)
	{
		if(s[i]=='L')
			l++;//统计向左的
		else if(s[i]=='R')
			r++;//统计向右的
		else if(s[i]=='U')
			u++;//统计向上的
		else if(s[i]=='D')
			d++;//统计向下的
	}
	int lr=abs(l-r);
	int ud=abs(u-d);
	cout<<(abs(lr+ud))/2<<endl;//输出
	return 0;
 } 
posted @ 2020-06-11 18:12  ACwisher  阅读(118)  评论(0编辑  收藏  举报