diff --git a/asteroid_collision.cpp b/asteroid_collision.cpp new file mode 100644 index 00000000..da751761 --- /dev/null +++ b/asteroid_collision.cpp @@ -0,0 +1,25 @@ +class Solution { +public: + vector asteroidCollision(vector& asteroids) { + vector ans; + int n=asteroids.size(); + for(int i=0;i0 ){ + ans.push_back(curr); + } + else{ + while(!ans.empty() && ans.back()>0 && ans.back() +using namespace std; + +bool isValid(string s) +{ + int n = s.size(); + stack st; + bool ans = true; + for (int i = 0; i < n; i++) + { + if (s[i] == '{' or s[i] == '(' or s[i] == '[') + { + st.push(s[i]); + } + else if (s[i] == ')') + { + if (!st.empty() and st.top() == '(') + { + st.pop(); + } + else + { + ans = false; + break; + } + } + else if (s[i] == ']') + { + if (!st.empty() and st.top() == '[') + { + st.pop(); + } + else + { + ans = false; + break; + } + } + else if (s[i] == '}') + { + if (!st.empty() and st.top() == '{') + { + st.pop(); + } + else + { + ans = false; + break; + } + } + } + if(!st.empty()){ + return false; + } + return ans; +} +int main() +{ + string s = "{([])}"; + + if(isValid(s)){ + cout<<"valid string "; + } + else{ + cout<<"invalid string "; + } + return 0; +}