题意:给你一个命令字符串,机器人会按命令走,但是他要回到原点,所以他得忽略掉一部分命令!问机器人最多执行的多少命令?
思路:统计一下'U','L','R','D'出现的次数,然后2 * (min(a['U'], a['D']) + min(a['L'], a['R']))就是答案。
比如:LRRRRL,命令为LRRL得时候才能回到原点,所以机器人忽略掉两个R命令,这种时候答案为4。
#include<bits/stdc++.h>
using namespace std;
int n,a[100];
string s;
int main()
{
while(cin >> n >> s)
{
memset(a,0,sizeof(a));
for(int i = 0; i < n; i++) a[s[i]]++;
printf("%d\n",2 * (min(a['U'], a['D']) + min(a['L'], a['R'])));
}
return 0;
}