浏览器打开网站404,做网站流程 优帮云,重庆市建设安全管理网,百度云 wordpress 教程视频题目#xff1a; 给定一个只包括 (#xff0c;)#xff0c;{#xff0c;}#xff0c;[#xff0c;]的字符串s#xff0c;判断字符串是否有效。 约束#xff1a; 有效字符串需满足#xff1a; 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。…题目 给定一个只包括 (){}[]的字符串s判断字符串是否有效。 约束 有效字符串需满足 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。
示例 1 输入s () 输出true
示例 2 输入s ()[]{} 输出true
示例 3 输入s (] 输出false 示例 4 输入s {[]} 输出true
解析 遇到左括号则入栈遇到对应得右括号则出栈。
演示源码
// Len_IsValid.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。
//#include iostream
#include string
#include vector
using namespace std;bool isValid(string s)
{vectorchar q;char last ;for (int i 0; i s.size(); i){last (q.size() 0) ? (q[q.size() - 1]) : ( );if (s[i] ) || s[i] } || s[i] ]){if (s[i] ) last () q.pop_back();else if (s[i] } last {) q.pop_back();else if (s[i] ] last [) q.pop_back();else return false;}else{q.push_back(s[i]);}}if (q.size() 0) return false;return true;
}void PrintStr(string s, bool bResult)
{// sprintf(\ns \%s\, s.c_str());// resultprintf(\nbResult %s\n, (bResult ! 0) ? (true) : (false));
}int main()
{string s ();bool bResult isValid(s);PrintStr(s, bResult);s ()[]{};bResult isValid(s);PrintStr(s, bResult);s (};bResult isValid(s);PrintStr(s, bResult);s {[]};bResult isValid(s);PrintStr(s, bResult);
}执行结果