P8650 [蓝桥杯 2017 省 A] 正则问题(dfs )

多重括号,利用回溯来对上一层括号中的内容进行反馈

实现:

若为 x 长度加一

若为 ( 进入递归计算 (计算相当于子表达式)

若为 ) 结束当前递归

若为 | 计算递归,并与当前长度进行比较

复制代码
#include<stdio.h>
#include<iostream>
using namespace std;
int dec1();
int main()
{

	printf("%d", dec1());
	return 0;
}
int dec1()
{
	char ch;
	int len = 0;
	while (cin >> ch)
	{
		if (ch == '(')
			len += dec1();
		else if (ch == 'x')
			len++;
		else if (ch == ')')
			return len;
		else
			return max(len, dec1());
	}
	return len;
}
相关推荐
u0109272716 小时前
C++中的RAII技术深入
开发语言·c++·算法
2401_832131957 小时前
模板错误消息优化
开发语言·c++·算法
金枪不摆鳍7 小时前
算法--二叉搜索树
数据结构·c++·算法
近津薪荼7 小时前
优选算法——双指针6(单调性)
c++·学习·算法
helloworldandy8 小时前
高性能图像处理库
开发语言·c++·算法
2401_836563188 小时前
C++中的枚举类高级用法
开发语言·c++·算法
bantinghy8 小时前
Nginx基础加权轮询负载均衡算法
服务器·算法·nginx·负载均衡
chao1898448 小时前
矢量拟合算法在网络参数有理式拟合中的应用
开发语言·算法
代码无bug抓狂人8 小时前
动态规划(附带入门例题)
c语言·算法·动态规划
weixin_445402309 小时前
C++中的命令模式变体
开发语言·c++·算法