专栏文章

题解:P13414 [COCI 2012/2013 #4] ESEJ

P13414题解参与者 4已保存评论 3

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
3 条
当前快照
1 份
快照标识符
@miorof6m
此快照首次捕获于
2025/12/03 00:02
3 个月前
此快照最后确认于
2025/12/03 00:02
3 个月前
查看原文
题意:判断 AABB 组成的单词是否是好单词。一个好单词要求每个字母都能与另一个相同的字母配对且所有配对的弧线不能相交。
只需要遍历每个字母,如果栈顶字母和当前字母相同,弹出栈顶,否则就把它压入栈,最后判断栈是否为空,为空就说明全部配对完成。
CPP
#include<bits/stdc++.h>
using namespace std;
bool pd(const string &a) {
    stack<char>s; 
    for(size_t i=0;i<a.size();i++) {
        if(!s.empty()&&s.top()==a[i])s.pop(); //判断栈顶字母是否和当前字母相同,相同弹出栈顶。
        else s.push(a[i]);  //不同把它压出栈。
    }
    return s.empty(); 
}
int n,ans; 
string a;   
int main() {
    cin>>n;
    for(int i=0;i<n;i++) {
        cin>>a;
        if(pd(a))ans++;  
    }
    cout<<ans;  
}

评论

3 条评论,欢迎与作者交流。

正在加载评论...