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;
}
相关推荐
澈20722 分钟前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法
ambition202421 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
cmpxr_1 小时前
【C】原码和补码以及环形坐标取模算法
c语言·开发语言·算法
qiqsevenqiqiqiqi1 小时前
前缀和差分
算法·图论
代码旅人ing1 小时前
链表算法刷题指南
数据结构·算法·链表
Yungoal1 小时前
常见 时间复杂度计算
c++·算法
不爱吃炸鸡柳2 小时前
单链表专题(完整代码版)
数据结构·算法·链表
CylMK2 小时前
题解:AT_abc382_d [ABC382D] Keep Distance
算法
Dfreedom.3 小时前
计算机视觉全景图
人工智能·算法·计算机视觉·图像算法
Morwit3 小时前
【力扣hot100】 1. 两数之和
数据结构·c++·算法·leetcode·职场和发展