淮安市网站建设_网站建设公司_jQuery_seo优化
2026/1/11 18:22:13 网站建设 项目流程

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

洛谷:B3758 [信息与未来 2021] 括号序列 - 洛谷 (luogu.com.cn)

【题目描述】

你得到了一个仅包含左圆括号(和右圆括号)的字符串,但其中的括号并不配对。为了使这个字符串变得更好看,你希望在字符串中插入尽可能少的圆括号(可以在任意位置插入任意数量的括号,但已有的括号不能改变),使修改后的字符串括号配对。

【输入】

输入一行一个字符串,为括号未全部配对的圆括号序列。

【输出】

输出一行,为插入圆括号后配对的字符串。如有多种长度最短的方案,输出任意一个即可。

【输入样例】

(())()(

【输出样例】

(())()()

【算法标签】

《洛谷 B3758 括号序列》 #字符串# #贪心# #栈# #信息与未来# #2021# #江苏# #Special Judge#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;string s;// 输入字符串stack<char>sta;// 用于匹配括号的栈intmain(){cin>>s;// 读入字符串for(inti=0;i<s.size();i++)// 遍历字符串{charc=s[i];// 当前字符if(c=='(')// 如果是左括号{cout<<c;// 输出左括号sta.push(c);// 左括号入栈}else// 如果是右括号{if(sta.size())// 栈不为空,有匹配的左括号{sta.pop();// 弹出匹配的左括号cout<<c;// 输出右括号}else// 栈为空,右括号没有匹配的左括号cout<<"()";// 补全为"()"}}while(sta.size())// 处理栈中剩余的左括号{cout<<')';// 为每个多余的左括号补右括号sta.pop();// 弹出左括号}return0;}

【运行结果】

(())()( (())()()

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询