首页 > 其他分享 >力扣练习题

力扣练习题

时间:2023-09-23 21:58:16浏览次数:54  
标签:练习题 char return sqstack top 力扣 MAXSIZE base

 1 #include <bits/stdc++.h>
 2 #define MAXSIZE 100
 3 using namespace std;
 4 typedef struct{
 5     char* base;
 6     char* top;
 7     int stactsize;
 8 }sqstack;
 9 void initstack(sqstack &s){
10     s.base=new char[MAXSIZE];
11     if(!s.base){
12         return;
13     }
14     s.top=s.base;
15     s.stactsize=MAXSIZE;
16     return;
17 }
18 void push(sqstack &s,char e){
19     if(s.top-s.base==MAXSIZE){
20         return;
21     }
22     *s.top++=e;
23     return;
24 }
25 void pop(sqstack &s,char &e){
26     if(s.top==s.base){
27         return;
28     }
29     e=*--s.top;
30     return;
31 }
32 bool isValid(char* s){
33     int n=strlen(s);
34     if(n%2!=0){
35         return false;
36     }
37     sqstack S;
38     initstack(S);
39     if(s[0]==')'||s[0]=='}'||s[0]==']'){
40         return false;
41     }
42     for(int i=0;i<n;i++){
43         if(s[i]=='('||s[i]=='{'||s[i]=='['){
44             push(S,s[i]);
45         }
46         if(s[i]==')'||s[i]=='}'||s[i]==']'){
47             char e;
48             pop(S,e);
49             if(e=='(' && s[i]-e!=1){
50             
51                 return false;
52             }
53             if(e!='('&&s[i]-e!=2){
54                     return false;
55             }
56         }
57     }
58     return true;
59 }
60 int main(){
61     char s[MAXSIZE]; 
62     gets(s);
63     int flag=isValid(s);
64     if(flag==1){
65         cout<<"true"<<endl;
66     } 
67     else{
68         cout<<"false"<<endl;
69     }
70 } 

 

标签:练习题,char,return,sqstack,top,力扣,MAXSIZE,base
From: https://www.cnblogs.com/Lyh3012648079/p/17725120.html

相关文章

  • 9.21日数据结构练习题
    用栈操作去判断一个字符串是不是回文数列1#include<iostream>2#defineMAXSIZE1003usingnamespacestd;4//定义一个栈的结构体5//包含顶指针,尾指针,长度6typedefstruct{7char*base;8char*top;9intstacksize;10}SqStack;11//创......
  • 力扣6.N 字形变换(压缩矩阵)
    将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:PAHNAPLSIIGYIR之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请......
  • 力扣20.有效的括号
    给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 示例1:输入:s="()"输出:true 示例 2:输入:s="()[]{}"......
  • 力扣14.最长公共前缀
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。 示例1:输入:strs=["flower","flow","flight"]输出:"fl" 示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。 ......
  • 递归例题 力扣39 组合总数
    给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一......
  • 力扣1.两数之和
    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 示例1:输入:nums=[2,......
  • 力扣上一道抽到英文原题现场还没写出来的easy难度的mid题
    646.MaximumLengthofPairChain 很难绷,今天去华东理工面试抽到了这个英文原题,虽然我也没写过,但是区间操作的题目大多都需要排序预处理,想到了排序预处理,也想到了第二个判断应该怎么写,第一个判断当时脑子一片空白,然后就一直卡在那,最后连最基本的思路都没说就进入了下一个环......
  • linux基础练习题
    linux基础练习题 第1章阶段总结1.1一、请详细描述linux系统从打开主机电源到进入登录界面整个过程的流程。BIOS开机自检mbr引导grub菜单加载内核init进程/etc/inittab/etc/rc.d/rc.sysinit/etc/re.d/rc启动mingetty进程登录界面1.2二、我想在/data......
  • 尚硅谷大数据HiveSQL练习题(一)——同时在线人数问题
    题目需求现有各直播间的用户访问记录表(live_events)如下,表中每行数据表达的信息为,一个用户何时进入了一个直播间,又在何时离开了该直播间。user_id(用户id)live_id(直播间id)in_datetime(进入直播间的时间)out_datetime(离开直播间的时间)10012021-12-119:30:00......
  • 力扣-不同路径1
    1.问题一个机器人位于一个mxn网格的左上角(起始点在下图中标记为“Start”)。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7x3的网格。有多少可能的路径?示例1:输入:m=3,......