合一算法2
Posted PirateLHX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合一算法2相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<string> #include<stack> using namespace std; int main() { stack<char> s; stack<int> b; string a; cin>>a; int flag=0; if(a[0]==‘P‘||a[0]==‘Q‘||a[0]==‘R‘||a[0]==‘S‘||a[0]==‘T‘) cout<<"谓词"<<endl; else { cout<<"普通命题"<<endl; return 0; } for(int i=0;i<a.length();i++) { if(a[i]==‘(‘) { s.push(‘(‘); b.push(i); } if(a[i]==‘)‘) { if(s.empty()) { flag=1; break; } else { s.pop(); int w=b.top(); if(w==1) { b.pop(); } else { if(a[w]!=‘f‘||a[w]!=‘g‘||a[w]!=‘h‘) flag=1; } } } } if(!s.empty()) flag=1; for(int i=0;i<a.length();i++) { if(a[i]==‘(‘||a[i]==‘,‘||a[i]==‘P‘) continue; else { if((‘a‘>a[i]&&a[i]>‘z‘)) { if(a[i]!=‘x‘||a[i]!=‘y‘) { flag=1; break; } } } } if(flag==0) cout<<"legal"<<endl; else cout<<"illegal"<<endl; return 0; }
以上是关于合一算法2的主要内容,如果未能解决你的问题,请参考以下文章
有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]