题目描述 给定只由 6 种括号字符组成的字符串:(, ), [, ], {, }。判断每个字符串是否为“合法括号序列”, 合法则输出 YES,否则输出 NO。合法括号序列的定义: 空串合法; 若 A 合法,则 (A), [A], {A} 均合法; 若 A 与 B 均合法,则 AB 合法。 输入格式 第一行一个整数 T,表示数据组数。接下来 T 行,每行一个只包含上述 6 种字符的字符串。 输出格式 对于每个字符串,输出一行: 若其为合法括号序列,输出 YES; 否则输出 NO。 输入输出样例 输入 1 ()[]{} 输出 YES 输入 6 () ([)] ([]){} (((( {[()()]} }{ 输出 YES NO YES NO YES NO 说明/提示 记单串长度记为 ∣S∣。测试数据满足 1≤∣S∣≤106,1≤T≤2×105,同一输入文件内总长度 ∑∣S∣≤2×106,字符串只包含字符 ()[]{}。 用c++语言
```cpp #include <iostream> #include <stack> #include <string> // 判断字符串是否为合法括号序列 bool isValid(const std::string& s) { std::stack<char> st; for (char c : s) { if (c == '(' || c == '[' || c == '{') { st.push(c); } else { if (st.empty()) return false; char top = st.top(); st.pop(); if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) { return false; } } } return st.empty(); } int main() { int T; std::cin >> T; std::cin.ignore(); // 忽略换行符 for (int i = 0; i < T; ++i) { std::string s; std::getline(std::cin, s); if (isValid(s)) { std::cout << "YES" << std::endl; } else { std::cout << "NO" << std::endl; } } return 0; } ``` 代码解释 1. `isValid`函数:该函数用于判断输入的字符串是否为合法括号序列。 - 使用`std::stack`来存储左括号。 - 遍历字符串中的每个字符,如果是左括号,则将其压入栈中。 - 如果是右括号,检查栈是否为空。若为空,说明没有匹配的左括号,返回`false`。 - 若栈不为空,弹出栈顶元素,检查是否与当前右括号匹配。若不匹配,返回`false`。 - 遍历结束后,若栈为空,说明所有左括号都有匹配的右括号,返回`true`;否则返回`false`。 2. `main`函数: - 读取输入的测试数据组数`T`。 - 使用`std::cin.ignore()`忽略换行符。 - 循环`T`次,每次读取一个字符串,并调用`isValid`函数判断其是否合法。 - 根据判断结果输出`YES`或`NO`。 [2025-12-04 18:04:18 | AI问答 | 532点数解答]
- [字节豆包] 题目描述 给定只由 6 种括号字符组成的字符串:(, ), [, ], {, }。判断每个字符串是否为“合法括号序列”, 合法则输出 YES,否则输出 NO。合法括号序列的定义: 空串合法; 若 A 合法,则 (A), [A], {A} 均合法; 若 A 与 B 均合法,则 AB 合法。 输入格式 第一行一个整数 T,表示数据组数。接下来 T 行,每行一个只包含上述 6 种字符的字符串。 输出格式 对于每个字符串,输出一行: 若其为合法括号序列,输出 YES; 否则输出 NO。 输入输出样例 输入 1 ()[]{} 输出 YES 输入 6 () ([)] ([]){} (((( {[()()]} }{ 输出 YES NO YES NO YES NO 说明/提示 记单串长度记为 ∣S∣。测试数据满足 1≤∣S∣≤106,1≤T≤2×105,同一输入文件内总长度 ∑∣S∣≤2×106,字符串只包含字符 ()[]{}。 用c++语言(339点数解答 | 2025-12-03 18:22:21)10
- [字节豆包] 题目描述 给定只由 6 种括号字符组成的字符串:(, ), [, ], {, }。判断每个字符串是否为“合法括号序列”, 合法则输出 YES,否则输出 NO。合法括号序列的定义: 空串合法; 若 A 合法,则 (A), [A], {A} 均合法; 若 A 与 B 均合法,则 AB 合法。 输入格式 第一行一个整数 T,表示数据组数。接下来 T 行,每行一个只包含上述 6 种字符的字符串。 输出格式 对于每个字符串,输出一行: 若其为合法括号序列,输出 YES; 否则输出 NO。 输入输出样例 输入 1 ()[]{} 输出 YES 输入 6 () ([)] ([]){} (((( {[()()]} }{ 输出 YES NO YES NO YES NO 说明/提示 记单串长度记为 ∣S∣。测试数据满足 1≤∣S∣≤106,1≤T≤2×105,同一输入文件内总长度 ∑∣S∣≤2×106,字符串只包含字符 ()[]{}。 用c++语言(532点数解答 | 2025-12-04 18:04:18)2
- [字节豆包] 题目描述 在计算机科学中,二进制数是一种仅由 0 和 1 组成的数制。现在给你一个整数 n,你需要判断 n 是否符合二进制数的特征,即它是否仅由数字 0 和 1 组成。 若 n 仅由 0 和 1 组成,就意味着它可以被看作是一个二进制数,此时请输出 yes;若 n 包含除 0 和 1 之外的其他数字,那么它不符合二进制数的定义,此时请输出 no。 输入格式 一行,包含一个整数 n。 输出格式 一行一个字符串,若 n 仅由 0 和 1 组成,输出 yes;否则,输出 no。(473点数解答 | 2025-11-15 20:34:57)23
- [字节豆包] 题目描述 现在给出一排共 n 只鹅的身高,李白想知道最高的鹅比其他所有鹅高多少、最矮的鹅 比其他所有鹅矮多少。 请输出这两行信息。 输入格式 输入共两行。 第一行一个整数 n 表示鹅的数目。 第二行共 n 个整数 ai(i=1,2,3...n),表示第 i 只鹅的身高。 输出格式 输出共两行。 第一行共 n 个空格隔开的整数,第 i 个整数表示序列中第 i 只鹅比最高的那只鹅要 矮多少。 第二行共 n 个空格隔开的整数,第 i 个整数表示序列中第 i 只鹅比最矮的那只鹅要 高多少。 输入输出样例 输入 #1 6 4 7 8 6 3 2 输出 #1 4 1 0 2 5 6 2 5 6 4 1 0 说明/提示 李白一共有 6 只鹅,最高的一只身高为 8,最矮的一只身高为 2,然后分别作为被减 数和减数参与身高差计算可得结果。 对于 30% 数据,保证 0≤ai≤30,1≤n≤20。 对于 100% 数据,保证 0≤ai≤1018,1≤n≤106。 用c++语言(549点数解答 | 2025-11-16 20:19:06)25
- [字节豆包] 题目描述 幼儿园里有 n 个小朋友,每个小朋友有一个学号。 老师要求:学号是奇数的小朋友站一排,学号是偶数的小朋友站一排。 提示: 奇数:个位为 1,3,5,7,9 的数字,满足除以 2 的余数为 1。 偶数:个位为 0,2,4,6,8 的数字,满足除以 2 的余数为 0。 输入格式 共两行,第一行一个数字 n,表示有 n 个小朋友。 第二行共 n 个数字,其中第 i 个数字 ai表示第 i 个小朋友的学号。 输出格式 共两行,第一行一些数字,表示学号为奇数的小朋友的学号,按照输入的顺序输出。 即,如果一个数字输入的时候在前,那么输出的时候也应当在前。 第二行一些数字,表示学号为偶数的小朋友的学号,按照输入的顺序输出。 保证小朋友的学号既有奇数,又有偶数。 输入输出样例 输入 #1 5 1 2 3 4 5 输出 #1 1 3 5 2 4 输入 #2 5 5 2 3 1 4 输出 #2 5 3 1 2 4 说明/提示 对于 20% 的数据,n=2; 对于 40% 的数据,满足 n≤100; 对于另外 20% 的数据,满足 ai=(406点数解答 | 2025-11-26 19:39:05)16
- [字节豆包] 一块 n×n 正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式: 转 90°:图案按顺时针转 90°。 转 180°:图案按顺时针转 180°。 转 270°:图案按顺时针转 270°。 反射:图案在水平方向翻转(以中央铅垂线为中心形成原图案的镜像)。 组合:图案在水平方向翻转,然后再按照 1∼3 之间的一种再次转换。 不改变:原图案不改变。 无效转换:无法用以上方法得到新图案。 如果有多种可用的转换方法,请选择序号最小的那个。 只使用上述 7 个中的一个步骤来完成这次转换。 输入格式 第一行一个正整数 n。 然后 n 行,每行 n 个字符,全部为 @ 或 -,表示初始的正方形。 接下来 n 行,每行 n 个字符,全部为 @ 或 -,表示最终的正方形。 输出格式 单独的一行包括 1∼7 之间的一个数字(在上文已描述)表明需要将转换前的正方形变为转换后的正方形的转换方法。 输入输出样例 输入 #1复制 3 @-@ --- @@- @-@ @-- --@ 输出 #1复制 1 说明/提示 【数据(817点数解答 | 2025-11-25 19:03:09)15
- [字节豆包] 题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式 一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 + 和乘法运算符 *,且没有括号,所有参与运算的数字均为0到231−1 之间的整数。 输入数据保证这一行只有 0*********+* 这 12 种字符。 输出格式 一个整数,表示这个表达式的值。 注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。 输入输出样例 输入 #1 1+1*3+4 输出 #1 8 输入 #2 1+*********0*1 输出 #2 7891 输入 #3 1+1000000003*1 输出 #3 4 说明/提示 对于 30% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100。 对于 80% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤1000。 对于 100% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100000 用c++语言(730点数解答 | 2025-11-26 20:12:36)16
- [字节豆包] 题目描述 给定一个只包含加法和乘法的算术表达式,请你编程计算表达式的值。 输入格式 一行,为需要你计算的表达式,表达式中只包含数字、加法运算符 + 和乘法运算符 *,且没有括号,所有参与运算的数字均为0到231−1 之间的整数。 输入数据保证这一行只有 0*********+* 这 12 种字符。 输出格式 一个整数,表示这个表达式的值。 注意:当答案长度多于 4 位时,请只输出最后 4 位,前导 0 不输出。 输入输出样例 输入 #1 1+1*3+4 输出 #1 8 输入 #2 1+*********0*1 输出 #2 7891 输入 #3 1+1000000003*1 输出 #3 4 说明/提示 对于 30% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100。 对于 80% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤1000。 对于 100% 的数据,0≤ 表达式中加法运算符和乘法运算符的总数 ≤100000。 用c++语言,用简单方法(437点数解答 | 2025-11-26 20:13:21)19
- [字节豆包] 题目描述 如果正整数 n 满足,除了最高数位以外,其他数位都是 0,那么就称 n 为“超级整数”。 例如,500,10,7 都是“超级整数”,而 77,808,1100 都不是“超级整数”。 给出一个正整数 n,判断 n 是不是超级整数。 输入格式 输入一行一个正整数 n。 输出格式 输出一行一个字符串。具体地,如果 n 是超级整数,则输出 Yes,否则输出 No。 输入样例1 4005 输出样例1 No 说明/提示 用c++语言(242点数解答 | 2025-11-10 20:27:49)38
- [字节豆包] 给以下代码进行注释: fn czzb a b c=(--已知三点a、b、c,求c点在ab直线上的垂足坐标 ab=b-a; ac=c-a; lab=length ab; lac=length ac; cosct=((dot ab ac)/(lab*lac));--求出cosct abxl=if cosct>=0 then ab/lab;else -1*(ab/lab)--ab的单位向量 lty=abs (lac*cosct);--求出投影长度 xl=lty*abxl;--求出偏移向量 return (a+xl);--返回垂足坐标 ) -- fn qiumianji v1 v2 v3=( -- local chang=length (v3-v1); -- local v0=czzb v1 v3 v2; -- local gao=length (v0-v2) -- local mj=0.5*chang*gao; -- return mj; -- ) fn qiumianji v1 v2 v3=( local a=length (v1-v2); local(324点数解答 | 2024-10-16 18:51:32)225
- [阿里通义] 使用下列代码创建数据框,完成以下的填空。 import numpy as np import pandas as pd data = {'animal': ['cat', 'cat', 'snake', 'dog', 'dog', 'cat', 'snake', 'cat', 'dog', 'dog'], 'age': [2.5, 3, 0.5, np.nan, 5, 2, 4.5, np.nan, 7, 3], 'visits': [1, 3, 2, 3, 2, 3, 1, 1, 2, 1], 'priority': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']} labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'] 1、使用data为数据,labels为索引,创建数据框df 2、取出 df 的 animal 和 age 列 填空1:df[________](317点数解答 | 2025-04-14 18:32:16)165
- [字节豆包] 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(385点数解答 | 2025-01-08 03:43:54)362