括号成对出现、判断括号是否匹配(不用堆栈)

思路:先创建一个字符数组,从第0个位置依次开始计数,只要满足“{”的个数大于等于“}”并且最后两者个数相等,就能匹配成功。

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>

int main()
{
 char str[10];
 int i,count1=0,count2=0;
 printf("请输入:\n");
 gets_s(str, 10);
 for (i = 0; i < 10; i++)
 {
  if (str[i] == ‘{‘)
   count1++;
  if (str[i] == ‘}‘)
   count2++;
  if (count1 < count2)
  {
   printf("匹配不成功。\n");
   system("pause");
   return 0;
  }
 }
 if (count1 != count2)
  printf("匹配不成功。\n");
 else
  printf("匹配成功。\n");
 system("pause");
 return 0;
}
时间: 2024-12-15 16:41:59

括号成对出现、判断括号是否匹配(不用堆栈)的相关文章

(编程训练)再回首,数据结构——(升级版)使用栈判断括号匹配

点击打开 基础版 最近在复习数据结构,顺便看看大一的时候写的代码,看完之后比当初有了更加深刻的体会. 希望这些能提供给初学者一些参考. 在VC++6.0下可运行,当初还写了不少注释. /* ********************************************************** * 3-2 * 设在一个算术表达式中允许使用3种括号:圆括号"(".")",方 * 括号"["."]",花括号"

C语言::验证花括号成对出现

题目要求 编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现. 注意:你不必担心注释内部.字符串常量内部和字符常量形式的花括号. 算法分析 我们先判断左花括号的数量是否相等. 如果左右花括号数量不等,肯定不成对! 如果左右花括号数量相等,一定就成对吗??? 好像也不一定. 我们来举例分析一下,左右花括号相等时可能会出现的情况: 1.{{{{{}}}}}(匹配) 2.{}{}{}{}{}(匹配) ... 3.}}}}}{{{{{(不匹配) 4.{{{{}}}}}{(

给你一串括号,去掉最少的括号,使之合法化,输出合法化的长度。

按照题目的四个条件去找就行了,小问题的解可以求出答题的解 dp[i][j]=max(dp[i][k]+dp[k+1][j],dp[i-1][j-1]+2) 1 #include"iostream" 2 #include"cstring" 3 #include"cstdio" 4 using namespace std; 5 int main() 6 { 7 char str[150]; 8 while(scanf("%s",s

sql事务,在sql2000里判断执行是否成功用@@ERROR 判断

原文:sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 贴个sql事务,在sql2000里判断执行是否成功用@@ERROR 判断 这个东西多少还是有点问题,sql2005了可以用try..catch了,不管那块错都能捕捉,然后在回滚,很方便,贴出来晾晾 BEGIN TRANSACTION; BEGIN TRY  --try 执行sql       SELECT 1/0; END TRY BEGIN CATCH  --cache抓错     SELECT         ERR

python中,花括号,中括号,小括号的区别

python中,花括号,中括号,小括号的区别 Python主要有三种数据类型:字典.列表.元组.其分别由花括号,中括号,小括号表示. 如: 字典:dic={'a':12,'b':34} 列表:list=[1,2,3,4] 元组:tup=(1,2,3,4) 至于这三者的具体区别,有很多介绍的,我就不在这里赘述了.

栈的应用-判断括号匹配

栈的一个典型应用就是可以用来协助分析表达式的括号是否匹配.括号可以延伸到任何成对出现的界定符,例如引号,书名号等. 接下来给出程序实现: 第一部分给出的是堆栈的插入,删除等操作对应的实现: 1 public class StackChar 2 { 3 private int maxSize;//堆栈数组大小 4 private char [] stackArray; 5 private int top;//堆栈顶 6 public StackChar(int maxSize) 7 { 8 thi

简单C编程题-同位相同的N项之和/标准输入花括号成对判断/行号行输出

//求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222 #include <stdio.h> int main() { int a,n,sum; int i,j; sum = 0; printf("请输入项数和a的值"); scanf("%d%d",&a,&n); j = a; for(i = 1;i <= n;i++) { sum = sum+a; a = j

Python 用栈判断括号匹配

#!/usr/bin/python # -*- coding: UTF-8 -*- from pythonds.basic.stack import Stack def parChecker(symbolString): s = Stack() balanced = True index = 0 while index < len(symbolString) and balanced: symbol =symbolString[index] #左边括号入栈 if symbol == '(': s

顺序栈判断括号是否匹配

/*Sample Input sin(20+10) {[}] Sample Output yes no*/ #include <stdio.h> #include <stdlib.h> #include <malloc.h> #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define LIST_INIT_SIZE