题目描述:
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
测试样例1:
输入: "()"
输出: true
测试样例2:
输入: "()[]{}"
输出: true
测试样例3:
输入: "(]"
输出: false
测试样例4:
输入: "([)]"
输出: false
测试样例5:
输入: "{[]}"
输出: true
解题思路:
step1:在字符串中寻找"()",“{}”,“[]”,如果找到了用“”代替;
step2:重复步骤1直到字符串中不再含有“()”,"{}","[]";
step3:判断跳出循环后的字符串是否为“”(空字符串),如果是返回1,否则返回0;
完整代码:
bool isValid(string s) {
while (s.find("()") != -1 || s.find("[]") != -1 || s.find("{}") != -1)
{
if (s.find("()") != -1)
s.replace(s.find("()"), 2, "");
if (s.find("[]") != -1)
s.replace(s.find("[]"), 2, "");
if (s.find("{}") != -1)
s.replace(s.find("{}"), 2, "");
}
return s == "";
}