牛客NC52 有效括号序列【简单 栈 C++/Java/Go/PHP】

ops/2024/9/25 23:24:54/

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

核心

 栈的思想

参考答案C++

class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param s string字符串* @return bool布尔型*/bool isValid(string s) {//本答案用vector模拟栈vector<char> stack(s.size());int idx = 0;for (int i = 0; i < s.size(); i++) {char c = s[i];if (c == '(' || c == '[' || c == '{') {stack[idx++] = c;} else {char pop = '1';if (idx > 0) {pop = stack[--idx];}if (c == ')' && pop != '(') return false;if (c == ']' && pop != '[') return false;if (c == '}' && pop != '{') return false;}}if (idx > 0) return false;return true;}
};

参考答案Java

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param s string字符串* @return bool布尔型*/public boolean isValid (String s) {//栈,本答案用数组模拟栈//Stack<Character> stack = new Stack<>();char[] arr = new char[s.length()];int idx = 0;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (c == '(' || c == '[' || c == '{') {//stack.add(c);arr[idx++] = c;} else {//char pop = stack.pop();char pop = idx>0 ? arr[--idx]:'1';if (c == ')' && pop != '(') return false;if (c == ']' && pop != '[') return false;if (c == '}' && pop != '{') return false;}}//if(stack.size()>0) return false;if (idx > 0) return false;return true;}
}

参考答案Go

package main/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param s string字符串* @return bool布尔型*/
func isValid(s string) bool {//栈,本答案用切片模拟栈stack := make([]byte, len(s))idx := 0for i := 0; i < len(s); i++ {c := s[i]if c == '(' || c == '[' || c == '{' {stack[idx] = cidx++} else {var pop byte = '1'if idx > 0 {idx -= 1pop = stack[idx]}if c == ')' && pop != '(' {return false}if c == ']' && pop != '[' {return false}if c == '}' && pop != '{' {return false}}}if idx > 0 {return false}return true
}

参考答案PHP

<?php/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param s string字符串 * @return bool布尔型*/
function isValid( $s )
{//本答案用数组模拟栈$stack = [];$idx=0;for($i=0;$i<strlen($s);$i++){$c = $s[$i];if($c=='(' || $c =='[' || $c =='{'){$stack[$idx++] = $c;}else{$pop = '1';if($idx>0){$idx--;$pop=$stack[$idx];}if($c ==')' && $pop!='(') return false;if($c ==']' && $pop!='[') return false;if($c =='}' && $pop!='{') return false;}}if($idx >0) return false;return true;
}

http://www.ppmy.cn/ops/18566.html

相关文章

Git TortoiseGit 详细安装使用教程

前言 Git 是一个免费的开源分布式版本控制系统&#xff0c;是用来保存工程源代码历史状态的命令行工具&#xff0c;旨在处理从小型到非常大型的项目&#xff0c;速度快、效率高。《请查阅Git详细说明》。TortoiseGit 是 Git 的 Windows Shell 界面工具&#xff0c;基于 Tortoi…

vue elementui 动态追加下拉框、输入框

vue elementui 动态追加下拉框、输入框 上代码&#xff1a; <template><div><el-dialogappend-to-body:close-on-click-modal"false":close-on-press-escape"false"width"65%"close"onClose":modal-append-to-body&q…

python 使用flask_httpauth和pyjwt实现登录权限控制

最近需要用到&#xff0c;学习了一下记录 首先安装依赖 pip install Flask-HTTPAuth pyjwt passlib Welcome to Flask-HTTPAuth’s documentation! — Flask-HTTPAuth documentation Welcome to PyJWT — PyJWT 2.8.0 documentation Passlib 1.7.4 documentation — Passl…

设计不外流,保护创意的同时锁住图纸安全!

在设计行业中&#xff0c;图纸和创意文稿的安全至关重要&#xff0c;因为它们体现了企业的创新能力和核心竞争力。华企盾DSC数据防泄密系统提供了一系列功能&#xff0c;可以有效地保护这些珍贵的设计和文档不被外泄。以下是如何利用华企盾DSC系统保障设计图纸安全的关键措施&a…

OpenHarmony语言基础类库【@ohos.util.HashSet (非线性容器HashSet)】

HashSet基于[HashMap]实现。在HashSet中&#xff0c;只对value对象进行处理。 HashSet和[TreeSet]相比&#xff0c;HashSet中的数据无序存放&#xff0c;即存放元素的顺序和取出的顺序不一致&#xff0c;而TreeSet是有序存放。它们集合中的元素都不允许重复&#xff0c;但Hash…

简明了解常规SpringBoot项目结构

一个典型的 Java Spring Boot 项目的结构通常遵循一定的约定&#xff0c;以便于组织代码和资源。 以下是一个基本的项目结构示例&#xff0c;它包含了常见的目录和文件&#xff1a; my-spring-boot-project/ │ ├── src/ │ ├── main/ │ │ ├── java/ │ │…

阿里云企业邮箱API的使用方法?调用限制?

阿里云企业邮箱API性能如何优化&#xff1f;配置邮箱API的优势&#xff1f; 阿里云企业邮箱以其稳定、高效和安全的特点&#xff0c;受到了众多企业的青睐。而阿里云企业邮箱API的开放&#xff0c;更是为企业提供了更加灵活、便捷的管理和操作方式。下面&#xff0c;我AokSend…

【前端技术】CSS基本语法(二)

一、 flex布局 flex布局称之为弹性布局给父元素设置display:flex&#xff0c;子元素可以自动挤压或拉伸内容&#xff0c;主轴方向默认为水平方向&#xff08;从左至右&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"…