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;
}
相关推荐
bachelores2 小时前
数据结构-排序
数据结构·算法·排序算法
飞鸢逐浪3 小时前
3D形状匹配 - SpiderMatch
算法
是Dream呀3 小时前
深度学习算法:开启智能时代的钥匙
人工智能·深度学习·算法
tan180°3 小时前
Cpp::C++11右值引用与移动构造(30)
开发语言·数据结构·c++·后端·算法
2401_858286113 小时前
123.【C语言】数据结构之快速排序挖坑法和前后指针法
c语言·开发语言·数据结构·算法·排序算法
pzx_0014 小时前
【集成学习】Boosting算法详解
人工智能·python·深度学习·算法·机器学习·集成学习·boosting
Channing Lewis4 小时前
经典编程题:服务器广播
python·算法
Ritsu栗子4 小时前
代码随想录算法训练营day27
c++·算法
小冯的编程学习之路4 小时前
【LeetCode】:稀疏相似度【困难】
c++·算法·leetcode
羊小猪~~5 小时前
C/C++语言基础--C++STL库算法记录(质变算法、非质变算法、查找、排序、排列组合、关系算法、集合算法、堆算法等)
c语言·开发语言·数据结构·c++·算法·stl