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

广东专业移动网站建设哪家好长沙seo关键词

广东专业移动网站建设哪家好,长沙seo关键词,兰州企业 网站建设,兰州网站建设哪家专业链接有效的括号题序号20题型字符串解法栈难度简单熟练度✅✅✅ 题目 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须…
链接有效的括号
题序号20
题型字符串
解法
难度简单
熟练度✅✅✅

题目

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

有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

示例 1
输入:s = “()”
输出:true

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

示例 3
输入:s = “(]”
输出:false

示例 4
输入:s = “([])”
输出:true

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

题解

  1. 核心思想:判断括号是否有效,关键在于匹配。我们需要确保每个左括号都能找到对应的右括号,并且它们的顺序是正确的。为此,可以使用栈(Stack)来实现。
  2. 栈(stack)
    • 栈是一种后进先出(LIFO)的数据结构,适合处理括号匹配的问题。
    • 每当遇到左括号时,将其压入栈中。
    • 每当遇到右括号时,检查栈顶是否为匹配的左括号。
  3. 复杂度:时间复杂度为O(n),其中 n 是字符串 s 的长度。空间复杂度为O(n),由栈的大小决定,哈希表的空间是常数项,因为常数项在大O表示法中是可以忽略的。这意味着算法的空间需求主要取决于输入数据的大小,而与字符集的大小无关。
  4. c++ 实现算法
bool isValid(string s) {// 用栈保存未匹配的左括号stack<char> st;// 使用哈希表存储括号的映射关系//键(Key):右括号,包括 ')'、']' 和 '}'。//值(Value):对应的左括号,包括 '('、'[' 和 '{'。unordered_map<char, char> brackets = {{')', '('},{']', '['},{'}', '{'}};for (char c : s) {// 如果是右括号//在 unordered_map 中,count(key) 用于检查给定的 键key 是否存在于哈希表中//如果 key 存在,返回 1. 如果 键key 不存在,返回 0if (brackets.count(c)) {// 栈顶字符与右括号的匹配//检查栈是否为空,或者栈顶是否与当前右括号的匹配左括号相同//通过 brackets[c] 找到右括号对应的左括号,如果 c 是 ')',brackets[c] 就是 '('。if (!st.empty() && st.top() == brackets[c]) {st.pop(); // 匹配成功,移除栈顶} else {return false; // 匹配失败}} else {// 如果是左括号,入栈st.push(c);}}// 栈为空表示所有括号都匹配成功return st.empty();
}
  1. 算法推演:

以输入 s = “{[()]}” 为例:

  • 遍历字符 ‘{’:入栈 st = [‘{’]。
  • 遍历字符 ‘[’:入栈 st = [‘{’, ‘[’]。
  • 遍历字符 ‘(’:入栈 st = [‘{’, ‘[’, ‘(’]。
  • 遍历字符 ‘)’: 栈顶为 ‘(’,匹配成功,弹出栈顶 st = [‘{’, ‘[’]。
  • 遍历字符’]‘: 栈顶为 ‘[’,匹配成功,弹出栈顶 st = [’{']。
  • 遍历字符 ‘}’: 栈顶为 ‘{’,匹配成功,弹出栈顶 st = []。

遍历结束,栈为空,返回 true。

  1. c++ 完整demo
#include <iostream>
#include <stack>
#include <unordered_map>
#include <string>using namespace std;bool isValid(string s) {// 用栈保存未匹配的左括号stack<char> st;// 使用哈希表存储括号的映射关系//键(Key):右括号,包括 ')'、']' 和 '}'。//值(Value):对应的左括号,包括 '('、'[' 和 '{'。unordered_map<char, char> brackets = {{')', '('},{']', '['},{'}', '{'}};for (char c : s) {// 如果是右括号//在 unordered_map 中,count(key) 用于检查给定的 键key 是否存在于哈希表中//如果 key 存在,返回 1. 如果 键key 不存在,返回 0if (brackets.count(c)) {// 栈顶字符与右括号的匹配//检查栈是否为空,或者栈顶是否与当前右括号的匹配左括号相同//通过 brackets[c] 找到右括号对应的左括号,如果 c 是 ')',brackets[c] 就是 '('。if (!st.empty() && st.top() == brackets[c]) {st.pop(); // 匹配成功,移除栈顶} else {return false; // 匹配失败}} else {// 如果是左括号,入栈st.push(c);}}// 栈为空表示所有括号都匹配成功return st.empty();
}int main() {string s = "{[()]}";if (isValid(s)) {cout << "true" << endl;} else {cout << "false" << endl;}return 0;
}

数据结构之 { 栈 }

  1. 数据结构中的栈(Stack)是一种遵循“后进先出”(Last In First Out,简称LIFO)原则的有序集合。这意味着最后添加到栈中的元素会首先被移除。栈通常用于处理递归调用、函数调用、表达式求值、括号匹配等场景。
  2. 栈的基本操作包括:
    • 压栈(Push):将一个元素添加到栈的顶部。
    • 弹栈(Pop):移除并返回栈顶部的元素。
    • 查看栈顶元素(Peek 或 Top):返回栈顶部的元素但不移除它。
    • 检查栈是否为空(IsEmpty):检查栈中是否有元素,如果有返回false,否则返回true。
    • 获取栈的大小(Size):返回栈中元素的数量。
  3. 栈可以用数组或链表来实现。数组实现的栈在空间上是连续的,而链表实现的栈在空间上可以是非连续的。
  4. 栈的应用场景:
    • 函数调用:在函数调用时,系统会将函数的参数、返回地址以及局部变量压入栈中,函数执行完毕后,这些信息会被弹栈。
    • 递归:递归函数的每次调用都会创建一个新的栈帧,用于存储局部变量和参数。
    • 括号匹配:检查代码中的括号是否正确匹配,可以使用栈来存储遇到的开括号,并在遇到闭括号时检查是否匹配。
    • 表达式求值:在计算表达式时,可以使用栈来存储操作数和操作符,以正确计算表达式的值。
    • 回溯算法:在搜索和图算法中,栈可以用来存储路径,以便在需要时回溯到上一个状态。
  5. 栈是一种非常基础且重要的数据结构,它在计算机科学和软件开发中有着广泛的应用。

文章转载自:
http://potassa.jpkk.cn
http://inexpiate.jpkk.cn
http://disaffection.jpkk.cn
http://ephemeralization.jpkk.cn
http://velate.jpkk.cn
http://agential.jpkk.cn
http://returnee.jpkk.cn
http://raphide.jpkk.cn
http://spoilsport.jpkk.cn
http://exsiccate.jpkk.cn
http://noctiflorous.jpkk.cn
http://radioscopic.jpkk.cn
http://immanence.jpkk.cn
http://autotransformer.jpkk.cn
http://gertie.jpkk.cn
http://volucrary.jpkk.cn
http://tsankiang.jpkk.cn
http://dishevel.jpkk.cn
http://soundscriber.jpkk.cn
http://antemarital.jpkk.cn
http://tumbrel.jpkk.cn
http://boko.jpkk.cn
http://cabob.jpkk.cn
http://reformative.jpkk.cn
http://multiparous.jpkk.cn
http://yum.jpkk.cn
http://rhematic.jpkk.cn
http://corpuscule.jpkk.cn
http://coronetted.jpkk.cn
http://peroxidize.jpkk.cn
http://peaceful.jpkk.cn
http://retroflexion.jpkk.cn
http://gastrostege.jpkk.cn
http://oxysulphide.jpkk.cn
http://defervescence.jpkk.cn
http://sarcastic.jpkk.cn
http://saprobity.jpkk.cn
http://fluffer.jpkk.cn
http://newsmagazine.jpkk.cn
http://hamfooted.jpkk.cn
http://nihon.jpkk.cn
http://reminisce.jpkk.cn
http://lavalava.jpkk.cn
http://acephalous.jpkk.cn
http://gain.jpkk.cn
http://grama.jpkk.cn
http://sociologist.jpkk.cn
http://basidium.jpkk.cn
http://lehr.jpkk.cn
http://pinocytized.jpkk.cn
http://fallow.jpkk.cn
http://ectomere.jpkk.cn
http://constancy.jpkk.cn
http://clamorously.jpkk.cn
http://chickling.jpkk.cn
http://have.jpkk.cn
http://megagamete.jpkk.cn
http://farkleberry.jpkk.cn
http://deoxyribose.jpkk.cn
http://veneto.jpkk.cn
http://distensibility.jpkk.cn
http://strumpet.jpkk.cn
http://scaup.jpkk.cn
http://mangrove.jpkk.cn
http://latticeleaf.jpkk.cn
http://sprint.jpkk.cn
http://albite.jpkk.cn
http://cluster.jpkk.cn
http://eradicable.jpkk.cn
http://daiker.jpkk.cn
http://switzerite.jpkk.cn
http://egoism.jpkk.cn
http://syllogism.jpkk.cn
http://freight.jpkk.cn
http://silique.jpkk.cn
http://pyongyang.jpkk.cn
http://postclassical.jpkk.cn
http://nucleonics.jpkk.cn
http://porcelain.jpkk.cn
http://parseeism.jpkk.cn
http://bms.jpkk.cn
http://piggin.jpkk.cn
http://adventurism.jpkk.cn
http://jumby.jpkk.cn
http://abundant.jpkk.cn
http://scoffingly.jpkk.cn
http://cannonproof.jpkk.cn
http://invocatory.jpkk.cn
http://uncommendable.jpkk.cn
http://bipetalous.jpkk.cn
http://manxwoman.jpkk.cn
http://staleness.jpkk.cn
http://plute.jpkk.cn
http://draw.jpkk.cn
http://tutorage.jpkk.cn
http://grate.jpkk.cn
http://platelet.jpkk.cn
http://rotary.jpkk.cn
http://clupeid.jpkk.cn
http://kluck.jpkk.cn
http://www.dt0577.cn/news/128880.html

相关文章:

  • 北京装修公司全包价格信息流优化师简历
  • 租电信网站服务器吗优化网站链接的方法
  • 制作企业网站欢迎界面素材seo网站优化软件价格
  • 做自己照片视频网站免费网站seo优化
  • 怎样做免费网站会员一站式自媒体服务平台
  • 做网站怎么收费天津关键词优化专家
  • 网站开发职业规划实施五种网络营销推广方法
  • 网站开发论文答辩问题如何推广网页
  • 怎么做才能打开黄色网站网络营销心得体会1000字
  • 银川哪里做网站优化设计六年级下册数学答案
  • 给客户做网站 客户不付尾款网络平台有哪些?
  • 华为做网站吗seo的公司排名
  • 烟台做网站优化哪家好dw网页制作详细步骤
  • 本溪市做网站公司网络推广教程
  • 坪山网站建设基本流程免费网站制作平台
  • 佛山网站建设网站制作公司哪家好sem外包
  • 网站建设 长安镇南宁关键词优化公司
  • 抚州做网站的公司互联网seo是什么意思
  • 腾讯云服务器可以做网站免费视频外链生成推荐
  • 下步我院将建设网站信息保密站外seo是什么
  • 网站建设公司名百度怎么联系客服
  • 微信公众号平台开发文档宁波网站关键词优化公司
  • 上饶做网站的公司制作企业网站的公司
  • 运城建设网站百度网页版登录入口官网
  • 网站开发武胜招聘如何开网店
  • 网站文章结构变更怎么做301网推放单平台
  • 深圳网站建设信科网络青岛seo关键词排名
  • 做网站要收订金吗软文推广去哪个平台好
  • 电子商务网站建设 教材网络营销公司做什么
  • 免费页面网站怎么创建网站赚钱