【字符串】1003. 检查替换后的词是否有效

题目:

 

 

解答:

依次遍历S中的每个字符,如果当前字符为c,判断栈顶两个字符是不是b和a,如果是,两次退栈, 否则可直接判断S不是有效的字符串, 当前前提是先判断栈中元素个数是不是大于2,如果不是,直接判断无效。如果是 字符a 和b直接入栈。

 1 class Solution {
 2 public:
 3    bool isValid(string S) 
 4    {
 5         stack<char> st;
 6         for(char ch:S)
 7         {
 8             if(ch!='c') 
 9             {
10                 st.push(ch);
11             }
12             else 
13             {
14                 if(st.size()<2) 
15                 {
16                     return false;
17                 }
18                 char ch1,ch2;
19                 ch1=st.top();
20                 st.pop();
21                 ch2=st.top();
22                 st.pop();
23                 if(ch1!='b'||ch2!='a') 
24                 {
25                     return false;
26                 }
27             }
28         }
29         if(st.empty()) 
30         {
31             return true;
32         }
33         return false; 
34     }
35 };

 

posted @ 2020-05-04 13:05  梦醒潇湘  阅读(189)  评论(0)    收藏  举报