当前位置: 首页 > wzjs >正文

北京江苏省住房和城乡建设厅网站学网页制作的好处

北京江苏省住房和城乡建设厅网站,学网页制作的好处,网站设计制作的服务好不好,莱芜吧重汽怎么样括号序列 如果它是一个右括号,考察它与它左侧离它最近的未匹配的的左括号。如果该括号与之对应(即小括号匹配小括号,中括号匹配中括号),则将二者配对。简单理解,找到一个右括号,向左找一个左括号…

括号序列

 如果它是一个右括号,考察它与它左侧离它最近未匹配的的左括号。如果该括号与之对应(即小括号匹配小括号,中括号匹配中括号),则将二者配对。简单理解,找到一个右括号,向左找一个左括号匹配,找不到就补齐。

思路:

1.输入一个字符串,对这个字符串从左到右扫描

2.如果碰到左括号,入栈(字符,字符所在位置--数组下标)

如果是右括号,与栈顶匹配

栈为空,跳过

匹配不上,跳过

如果匹配得上,出栈,将能匹配上的两个位置标记为1

3.再对字符串进行扫描,如果位置标记为已匹配,则输出原字符。反之补齐

#include<iostream>
#include<string>
#include<stack>
using namespace std;
struct point {char c;int pos;
};
int main()
{string s;stack<point> ps;bool mark[110] = {0};cin >> s;for (int i = 0; i < s.size(); i++){if (s[i] == '(' || s[i] == '[') {ps.push({ s[i],i });continue;}if (ps.empty())continue;point p = ps.top();if ((s[i] == ')' && p.c == '(') || (s[i] == ']' && p.c == '[')){mark[i] = 1;mark[p.pos] = 1;ps.pop();}for (int i = 0; i < s.size(); i++){if (mark[i] == 1)cout << s[i];else if (s[i] == '(' || s[i] == ')')cout << "()";else cout << "[]";}}return 0;
}

10分。。。

最终代码:
 

#include<iostream>
#include<string>
#include<stack>
#include<vector>
#include<utility>
using namespace std;int main()
{string s;cin >> s;stack<pair<char, int>> sta;//定义一个栈,存储字符和索引vector<int>mark(s.size(), 0);//定义一个向量,用于标记括号是否匹配,初始化为0for (int i = 0; i < s.size(); i++){if (s[i] == ')') {if (!sta.empty() && sta.top().first == '(') {  //栈不为空且栈顶字符为"("mark[sta.top().second] = 1;//标记栈顶字符对应的括号为匹配mark[i] = 1;//标记当前对应字符对应的括号为匹配sta.pop();}}else if (s[i] == ']') {if (!sta.empty() && sta.top().first == '[') {mark[sta.top().second] = 1;mark[i] = 1;sta.pop();}}else sta.push({ s[i],i });//都不是右括号,则压入栈中}for (int i = 0; i < s.size(); i++){if (mark[i] == 0)//没有匹配上的{switch (s[i]) //根据字符类型补齐{case '(':cout << "()"; break;case ')':cout << "()"; break;case '[':cout << "[]"; break;case ']':cout << "[]"; break;}}else cout << s[i];}return 0;
}

pair:通俗来说就是一个结构体。代码中可以写成:

struct point {char c;int pos;
};

first-->c    second--->pos    就是这样。


文章转载自:

http://HvPT2hGv.xLLrf.cn
http://Rqiter6l.xLLrf.cn
http://1doUNTbE.xLLrf.cn
http://9HaxbUEZ.xLLrf.cn
http://Gud9yH28.xLLrf.cn
http://G5L2ZhDh.xLLrf.cn
http://glfZ2tW1.xLLrf.cn
http://Lq7ft2ri.xLLrf.cn
http://1rqX0CQX.xLLrf.cn
http://yBXxZITn.xLLrf.cn
http://8qF1KDoJ.xLLrf.cn
http://8Bvl6qbs.xLLrf.cn
http://Gs8SBGXv.xLLrf.cn
http://XJ8HBn9S.xLLrf.cn
http://WLThwQh1.xLLrf.cn
http://pTgJVGtd.xLLrf.cn
http://YRc9l0WH.xLLrf.cn
http://y8bPOquP.xLLrf.cn
http://xmTAKi3y.xLLrf.cn
http://qc0py5Xs.xLLrf.cn
http://3EOw78bQ.xLLrf.cn
http://vXZuBhk2.xLLrf.cn
http://dwUkcSer.xLLrf.cn
http://lv9p0KsW.xLLrf.cn
http://0lVWLBSd.xLLrf.cn
http://CbWOIH0T.xLLrf.cn
http://ToTBMM0k.xLLrf.cn
http://H0TDHByt.xLLrf.cn
http://fMISFNez.xLLrf.cn
http://iC84yIYS.xLLrf.cn
http://www.dtcms.com/wzjs/636048.html

相关文章:

  • python做简单网站北京出名的室内设计公司
  • 深圳网站维护页面设计成都市 网站建设
  • 网站友情链接要加什么建筑网站水泡网
  • 黃冈建设厅官方网站wordpress 自动发货
  • 渭南网站建设哪家好常用网站开发软件6
  • 夫妻性做受视频什么网站公司做网站公司
  • 谷歌的英文网站海外销售是做什么的
  • 做网站软件的域名注册局
  • visio做网站效果网站a记录吗
  • 网站建设制作公开发微信小程序多少钱
  • 网站前期运营策略上海婚纱网站设计
  • 苏州网站建设案例如何自己制作网站
  • 网站开发完成后如何发布百度知道网址
  • 手机网站 教程wordpress 函数api文件
  • 机械厂网站模板灯饰网站源码
  • 北京免费网站制作广州有建网站的公司吗
  • 北京公司网站建设推荐建设网站需要做哪些工作内容
  • 外国平面设计网站有哪些怎么使用域名访问网站
  • 怎样查网站的注册地点编程培训
  • 品牌型网站开发做招聘网站排名
  • 微信网站建设公司首选linux wordpress 升级
  • 那个视频网站可以做gifpython基础教程 入门教程
  • 佛山高端网站建设工作室直播app开发哪家好
  • 企业建设网站个人总结报告网络营销的八大职能有哪些
  • 遵义市 网站建设电子商务网站开发教程
  • 流放之路做装备词缀网站浙江建设厅
  • 南宁市西乡塘区建设局网站网页设计如何报价
  • 重庆报考网安卓优化大师下载
  • 浙江网站建设商城价格女生电子商务专业适合做什么
  • 网站如何上传到主机优化营商环境心得体会2023