枚举子串,如果U的次数=D,R=L,那么可以回到原点
#include<stdio.h>
int main()
{
int n;
char s[256];
scanf("%d",&n);
scanf("%s",s);
int num=0;
for(int i=0;i<n;i++)
{
int u=0,r=0,d=0,l=0;
for(int j=i;j<n;j++)
{
if(s[j]=='U')
u++;
if(s[j]=='R')
r++;
if(s[j]=='D')
d++;
if(s[j]=='L')
l++;
if(u==d&&l==r)
num++;
}
}
printf("%d\n",num);
return 0;
}
int main()
{
int n;
char s[256];
scanf("%d",&n);
scanf("%s",s);
int num=0;
for(int i=0;i<n;i++)
{
int u=0,r=0,d=0,l=0;
for(int j=i;j<n;j++)
{
if(s[j]=='U')
u++;
if(s[j]=='R')
r++;
if(s[j]=='D')
d++;
if(s[j]=='L')
l++;
if(u==d&&l==r)
num++;
}
}
printf("%d\n",num);
return 0;
}