题目描述:
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
C++解法:
class Solution {
public:
bool isValid(string s) {
string s1 = "{}";
string s2 = "[]";
string s3 = "()";
while (s.find(s1) != std::string::npos || s.find(s2) != std::string::npos || s.find(s3) != std::string::npos)
{
while (s.find(s1) != std::string::npos)
{
s = s.replace(s.find(s1), 2, "");
}
while (s.find(s2) != std::string::npos)
{
s = s.replace(s.find(s2), 2, "");
}
while (s.find(s3) != std::string::npos)
{
s = s.replace(s.find(s3), 2, "");
}
}
return s == "";
}
};
int main()
{
Solution s;
cout << s.isValid("{}[](){[]}") << endl;
}
python解法:
class Solution:
def isValid(self, s):
while("{}"in s or "[]" in s or "()" in s):
s = s.replace("{}", "")
s = s.replace("[]", "")
s = s.replace("()", "")
return s == ""
s = Solution()
print(s.isValid("{}[](){[]}"))