题目链接: 登录 - 沐枫OJ
开始思路: 说实话,我不会 现在思路:(千万别抄,我是错的)
// r u * 的数值关系
/*
sum =0
if ==r +1
if == *
递归
F (sum +1) 表示*=r
F (sum -1) 表示*=u
if ==u -1
要求每一步得到的结果 sum >=0
最后sum能够取到0 True else false
*/
//input[] = "uu*r"
#include <bits/stdc++.h>
using namespace std;
int F(int idx,string input,int sum)
{
int num = input.length();
for (int i=idx;i<=num;i++)
{
if(input[i] == 'u') sum += 1;
else if (input[i] == 'r') sum -= 1;
else if (input[i] == '*')
{
F(idx+1,input, sum+1); //表示*=u
F(idx+1, input,sum-1); //表示*=r;
}
}
if(sum==0&&num) return true;
else return false;
}
int main(){
string s;
cin >> s;
if(F(1,s,0)) cout << "True";
else cout << "False";
return 0;
}
///F(1, 0)
所以谁能帮忙看看我哪错了????