给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
输入:s = "{[]}"
输出:true
输入:s = "()[]{}"
输出:true
[{}]
[[{}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void isValid(char * s);
int main()
{
/*********************************
给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
输入:s = "{[]}"
输出:true
输入:s = "()[]{}"
输出:true
[{}]
[[{}
差二
{ = 123;
} = 125;
[ = 91;
] = 93;
差一
( = 40;
) = 41;
*********************************/
int i,j;
char np[6];
char *s;
int num;
s = np;
gets(np);
isValid(np);
return 0;
}
void isValid(char *s)
{
int i,j;
char con[6];
int num;
num = strlen(s);
int index = 0;
if(num % 2 == 1)
{
printf("false");
return;
}
else
{
for(i = 0; i < num; i++)
{
if(s[i] == '(' || s[i] == '{' || s[i] == '[')
{
con[index++] = s[i];
}
else
{
if(s[i] == '(' && con[index] != ')')
{
printf("false");
return;
}
if(s[i] == '{' && con[index] != '}')
{
printf("false");
return;
}
if(s[i] == '[' && con[index] != ']')
{
printf("false");
return;
}
index--;
}
}
}
if(index == 0)
{
printf("ture");
return;
}
}
该博客主要讨论如何实现一个有效的括号字符串判断算法。它介绍了一个C语言的实现,该实现检查输入字符串中的括号是否按照正确的顺序和类型正确闭合。程序首先检查字符串长度,然后遍历字符串,逐个检查括号并将其与栈中存储的左括号进行匹配。如果发现不匹配或右括号在左括号之前,程序会立即返回错误结果。最后,如果所有括号都正确闭合且栈为空,则输出正确结果。
1458

被折叠的 条评论
为什么被折叠?



