题目要求:
给定一个只包括 '(',')','{','}','[',']'?的字符串 s ,判断字符串是否有效。
有效字符串需满足:
1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。
例如:
示例1:
输入:s="()"
输出:true
示例2:
输入:s="(){}"
输出:true
示例3:
输入:s="([)]"
输出:false
代码:
public class Solution {
public bool IsValid(string s)
{
int n = s.Length;
if (n % 2 == 1 || s.Length ==0)//判断是否为2的倍数,因为括号要成对出现
{
return false;
}
for (int i = 0; i < n/2+1; i++)//外循环:因为括号是成对出现的,所以比较n/2+1次就可以比完全部都内容
{
for (int j = 0; j < s.Length-1; j++)//内循环为具体比较括号是否正确
{
if ((s[j] == '(' && s[j+1]==')') || (s[j] =='[' && s[j+1]==']') || (s[j] == '{' && s[j + 1] == '}'))//判断括号是否为()[]{},成对的对比
{
s = s.Remove(j,2);//如果判断正确则把这对括号移出去
}
}
}
if (s.Length == 0)//直到把所有的括号移出去
return true;
return false;
}
}
|