bool isValid(string s) {
stack<char> st;
for(int i=0;i<s.length();i ) {
char top = st.empty() ? '#' : st.top();
The code is the solution for 'Valid Parenthesis' on LeetCode.
CodePudding user response:
When you wrote:
char top = st.empty() ? '#' : st.top();
The above checks if st is empty. If st is empty then top is initialized with the character literal '#'. Otherwise, top is initialized with the character returned from st.top().
Also, '#' is a character literal.
CodePudding user response:
'#' is a literal of type char. (Note it's an int type in C.)
It's used in this code as a placeholder for the top of an empty stack. Whether or not that's a good idea (is there any issue arising from a possible ambiguity with a stack explicitly containing '#'?) is another issue.
