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

在百度做网站赚钱吗网站后缀org

在百度做网站赚钱吗,网站后缀org,正定城乡建设局网站,大气婚纱影楼网站织梦模板原题链接🔗:有效的括号 难度:简单⭐️ 题目 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: …

原题链接🔗:有效的括号
难度:简单⭐️

题目

给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  • 每个右括号都有一个对应的相同类型的左括号。

示例 1:

输入:s = “()”
输出:true

示例 2:

输入:s = “()[]{}”
输出:true

示例 3:

输入:s = “(]”
输出:false

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 ‘()[]{}’ 组成

数据结构中的栈(Stack)是一种遵循后进先出(Last In First Out,LIFO)原则的线性数据结构。在栈中,数据的添加和删除都发生在栈顶。栈的两个主要操作是:

  1. 压栈(Push):将一个元素添加到栈顶。
  2. 弹栈(Pop):移除栈顶的元素,并返回它。

此外,栈还可能支持以下操作:

  • 查看栈顶元素(Peek/Top):返回栈顶元素,但不从栈中移除它。
  • 检查栈是否为空(IsEmpty):判断栈是否没有任何元素。
  • 获取栈的大小(Size):返回栈中元素的数量。

栈在计算机科学中有着广泛的应用,例如:

  • 函数调用和返回的实现:每次函数调用时,其返回地址和局部变量会被压入调用栈。
  • 括号匹配问题:使用栈来检查字符串中的括号是否正确闭合。
  • 撤销操作(Undo):在编辑器或绘图软件中,用户的操作可以被压入栈中,以便随时撤销。
  • 深度优先搜索(DFS):在图或树的遍历中,使用栈来存储待访问的节点。

栈的实现可以基于数组或链表。数组实现的栈具有固定的大小,而链表实现的栈则可以动态地增长和收缩。

栈的 C++ 实现示例

以下是使用 C++ 标准模板库(STL)中的 std::stack 容器实现栈的一个简单示例:

#include <iostream>
#include <stack>int main() {std::stack<int> myStack;// 压栈操作myStack.push(10);myStack.push(20);myStack.push(30);// 查看栈顶元素std::cout << "Top element is: " << myStack.top() << std::endl;// 弹栈操作myStack.pop();std::cout << "Top element after one pop is: " << myStack.top() << std::endl;// 检查栈是否为空if (!myStack.empty()) {std::cout << "Stack is not empty." << std::endl;}// 获取栈的大小std::cout << "Size of stack: " << myStack.size() << std::endl;return 0;
}

这个示例展示了如何创建一个整数类型的栈,执行压栈和弹栈操作,查看栈顶元素,检查栈是否为空,以及获取栈的大小。

题解

  1. 解题思路:

LeetCode 上的 “有效的括号”(Valid Parentheses)问题是一个经典的栈(Stack)应用问题。这个问题要求判断一个字符串中的括号是否正确配对。

  • 问题描述: 给定一个字符串 s,判断它是否是有效的括号序列。有效的括号序列需要满足以下条件:

    • 左括号必须有对应的右括号与之配对。
    • 括号必须按照正确的顺序配对。

    括号包括圆括号 ()、方括号 [] 和花括号 {}。

  • 解题思路

    • 使用栈结构:栈是一种后进先出(LIFO)的数据结构,非常适合处理配对问题。
    • 遍历字符串:逐个字符遍历字符串 s。
    • 遇到左括号:如果是左括号((, [, {),则将其推入栈中。
    • 遇到右括号:如果是右括号(), ], }):
      • 检查栈顶是否有对应的左括号:
        • 如果栈为空或者栈顶元素与当前右括号不匹配,说明括号序列无效,返回 False。
        • 如果匹配,将栈顶元素弹出。
    • 遍历结束:遍历完成后,检查栈是否为空:
      • 如果栈为空,说明所有括号都正确配对,返回 True。
      • 如果栈不为空,说明有未配对的左括号,返回 False。
  1. c++ demo:
#include <iostream>
#include <stack>
#include <string>
#include <map>using namespace std;class Solution {
public:bool isValid(string s) {stack<char> st;// 定义括号的映射关系map<char, char> brackets = { {')', '('}, {']', '['}, {'}', '{'} };for (char c : s) {if (c == '(' || c == '[' || c == '{') {// 如果是左括号,压入栈中st.push(c);}else {// 如果栈为空或者栈顶元素与当前右括号不匹配,返回falseif (st.empty() || brackets[c] != st.top()) {return false;}// 匹配则弹出栈顶元素st.pop();}}// 如果栈为空,则所有括号都正确配对return st.empty();}
};int main() {Solution solution;// 测试用例string test1 = "()";string test2 = "()[]{}";string test3 = "(]";string test4 = "([)]";string test5 = "{[()]}()";// 执行测试并打印结果cout << "Test 1: " << (solution.isValid(test1) ? "True" : "False") << endl;cout << "Test 2: " << (solution.isValid(test2) ? "True" : "False") << endl;cout << "Test 3: " << (solution.isValid(test3) ? "True" : "False") << endl;cout << "Test 4: " << (solution.isValid(test4) ? "True" : "False") << endl;cout << "Test 5: " << (solution.isValid(test5) ? "True" : "False") << endl;return 0;
}
  • 输出结果:

Test 1: True
Test 2: True
Test 3: False
Test 4: False
Test 5: True

  1. 代码仓库地址:isValid
http://www.yayakq.cn/news/725036/

相关文章:

  • 网站申请支付宝支付各省施工备案网站
  • 能看的网址的浏览器搜索引擎优化管理实验报告
  • 服装网站建设图aspcms 网站栏目管理
  • 做网站建设分哪些类型广东微信网站制作报价表
  • 可以做公众号背景图的网站珠海做网站优化的公司
  • 一个网站的运营成本青海省网站建设高端
  • 找人做网站需要问哪些问题平面设计一个月能赚多少钱
  • 陵水网站建设哪家专业深圳市做门窗网站有哪些推广
  • 个人做门户网站需要注册卖货平台有什么软件呢
  • 宁乡网站建设uuv9仿网站建设
  • 网上商城网站制作北京广告设计公司
  • 学到什么程度可以做网站北京做网站哪家公司最好
  • 福建省建设执业注册资格管理中心网站哪几个小说网站做网编拿的钱多
  • 我的手机网站制作网站协议书
  • 做空运货代常用网站电脑接单做任务平台
  • 新建网站二级网页怎么做wordpress 媒体库多选
  • 网站的优化承诺专业网站有哪些平台
  • 网站怎么无法访问沈阳网站制作推广
  • 网站内部优化策略培训机构管理系统哪个好
  • 网站两侧对联广告图片江西赣州网站
  • 长沙公司做网站大概多少钱启博微分销系统
  • 晋城网站设计建筑木模板国家标准
  • 怎么制作有效网站一级a做片性视频 网站在线观看
  • 做汽车网站怎么挣钱外贸电商做俄罗斯市场网站
  • 站长之家排名查询微信订阅号做网站
  • 网站开发申请微信支付秦皇岛建设路小学网站
  • vps lnmp wordpress上海搜索优化推广哪家强
  • 网站开发培训学校湖北外贸网站建设费用
  • 诸城盟族网站建设珠海网站建设尚古道策略
  • 个人网站吗建设集团摩托车