মডিউল ১৫-১ঃ Valid Parentheses (Leetcode)
class Solution
{
public:
bool isValid(string s)
{
stack<char> st;
for (char c : s)
{
if (c == '(' || c == '{' || c == '[') // আমরা যখনি কোন ওপেন ব্র্যাকেট (, {, [ পাব তখনি সেটি একটি স্ট্যাকে পুশ করে রেখে দিব
{
st.push(c);
}
else // আর যখনি কোন ক্লোজিং ব্র্যাকেট ), }, ] পাব
{
if (st.empty())
{
return false;
}
else // তখন চেক করে দেখব স্ট্যাকের টপে সেই টাইপের ওপেন ব্র্যাকেট আছে কিনা।
{
if (c == ')' && st.top() == '(')
{
st.pop(); // যদি থাকে তাহলে আমাদের ব্র্যাকেটের অর্ডার ঠিক আছে। তখন আমরা পপ করে দিচ্ছি।
}
else if (c == '}' && st.top() == '{')
{
st.pop();
}
else if (c == ']' && st.top() == '[')
{
st.pop();
}
else
{
return false; // আর যদি স্ট্যাকের টপে সেই টাইপের ওপেন ব্র্যাকেট না থাকে তাহলে ব্র্যাকেটের অর্ডার ঠিক নেই, রিটার্ন ফলস করে দিতে পারি।
}
}
}
}
return st.empty();
}
};Last updated