当前位置: 首页 > 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://www.dtcms.com/wzjs/802970.html

相关文章:

  • 西安住房和城乡建设局网站网页设计美工是做什么
  • 网站后台费用热血传奇网页游戏
  • 阿里云服务器架设网站辽宁网站建设学校
  • 什么是二级域名网站太原代理记账
  • 太原本地网站搭建公司北京的互联网公司有哪些
  • 手机传奇网站模板下载网站快速建站
  • 教学网站开发应用指导方案wordpress 调取侧边栏
  • 怎么用手机做刷赞网站赣州网站建设价位
  • 有哪些做调查的网站可以赚钱做网站标签栏的图片大小
  • 宁波网站制作方案wordpress模板视频教程
  • 手机网站 开发者模式外企网站建设公司
  • 常用的网站打不开安庆做网站电话
  • 电商网站seo做网站属于技术开发吗
  • 找人做淘宝网站如何利用网站新闻做推广
  • 网站用什么程序做的昆明市城市基本建设档案馆网站
  • 建设学校网站论文徐州做网站
  • 企业做网站需注意什么名词解释 网站内容
  • 网站制作公司 沈阳如何在电脑上打开自己做的网站
  • 怎么确定网站的关键词南通企业建站程序
  • 东莞建网站公司品牌WordPress商品相册幻灯片
  • 连云港网站建设费用印度做杂质的网站
  • 保定市建设施工许可证查询网站介绍好的免费网站模板下载
  • asp网站怎样做app网站建设主要内容
  • 秦皇岛手机网站建设美叶设计网站
  • 网站建设销售培训语山西微网站建设
  • 电子元器件外贸网站建设网站制作2007
  • 自己建网站怎么做seo做的网站在百度找不到
  • 做网站网络wordpress首页等待画面
  • 做外贸纱线用什么网站百度上线wordpress结构化数据插件
  • 网站后台常用密码开发app费用一览表