顺德网站制作公司哪家好,wordpress这,天津网络推广seo,做网站的人会留下啥漏洞吗一道模拟题。 题目传送门
题目意思#xff1a;
给你一个句子#xff0c;让你检查这个句子的语法是否正确。#xff08;语法请自行在题目中查看#xff09; 思路#xff1a;
就是模拟。依次判断这个句子是否符合每一条语法即可。但是细节很多就因为细节我错了好多次
给你一个句子让你检查这个句子的语法是否正确。语法请自行在题目中查看 思路
就是模拟。依次判断这个句子是否符合每一条语法即可。但是细节很多就因为细节我错了好多次具体看代码注释。 代码
#includebits/stdc.h
using namespace std;
const int N1e610;
string a[N];
int cnt;
bool fh(string s)//判断单词是否合法
{int lens.size();s s;if(s[len]ss[len-1]os[len-2]is[len-3]l)return 1;if(s[len]rs[len-1]ts[len-2]e)return 1;if(s[len]ss[len-1]is[len-2]ts[len-3]is[len-4]ns[len-5]i)return 1;if(s[len]as[len-1]ls[len-2]as[len-3]is[len-4]l)return 1;if(s[len]as[len-1]rs[len-2]ts[len-3]e)return 1;if(s[len]ss[len-1]es[len-2]ts[len-3]is[len-4]ns[len-5]i)return 1;return 0;
}
bool fx(string s)//判断单词的性别
{int lens.size();s s;if(s[len]ss[len-1]os[len-2]is[len-3]l)return 1;if(s[len]rs[len-1]ts[len-2]e)return 1;if(s[len]ss[len-1]is[len-2]ts[len-3]is[len-4]ns[len-5]i)return 1;if(s[len]as[len-1]ls[len-2]as[len-3]is[len-4]l)return 0;if(s[len]as[len-1]rs[len-2]ts[len-3]e)return 0;if(s[len]ss[len-1]es[len-2]ts[len-3]is[len-4]ns[len-5]i)return 0;
}
int fc(string s)//判断单词的词性
{int lens.size();s s;if(s[len]ss[len-1]os[len-2]is[len-3]l)return 1;if(s[len]rs[len-1]ts[len-2]e)return 2;if(s[len]ss[len-1]is[len-2]ts[len-3]is[len-4]ns[len-5]i)return 3;if(s[len]as[len-1]ls[len-2]as[len-3]is[len-4]l)return 1;if(s[len]as[len-1]rs[len-2]ts[len-3]e)return 2;if(s[len]ss[len-1]es[len-2]ts[len-3]is[len-4]ns[len-5]i)return 3;
}
int main()
{while(cina[cnt]);cnt--;int x0,y0;for(int i1;icnt;i){if(!fh(a[i]))//不合法直接输出NO{coutNO;return 0;}if(fx(a[i]))x;else y;}if(!((!xy)||(x!y))){//性别不一样输出NOcoutNO;return 0;}int num0;if(cnt1fh(a[1])){coutYES;return 0;}//只有一个合法单词输出YESif(cnt2){//只有两个单词的特殊情况if(fc(a[1])1fc(a[2])!2){//第一个单词是形容词但是第二个单词不是名词coutNO;return 0;}if(fc(a[1])2fc(a[2])!3){//第一个单词是名词但是第二个单词不是动词coutNO;return 0;}if(fc(a[1])3){//第一个单词是动词coutNO;return 0;}coutYES;return 0;}for(int i2;icnt;i){if(fc(a[i])1){//如果当前单词是形容词if(fc(a[i-1])1(fc(a[i1])1||fc(a[i1])2))continue;coutNO;//如果形容词的上一个不是形容词或者形容词的下一个不是形容词或名词就输出NOreturn 0;}if(fc(a[i])2){//如果当前单词是名词if(fc(a[i-1])1fc(a[i1])3)continue;coutNO;//如果名词的上一个不是形容词或者名词的下一个不是动词就输出NOreturn 0;}if(fc(a[i])3){//如果当前单词是动词if((fc(a[i-1])3||fc(a[i-1])2)fc(a[i1])3)continue;coutNO;//如果动词的上一个不是动词或名词或者动词的下一个不是动词就输出NOreturn 0;}}for(int i1;icnt;i)if(fc(a[i])2)num;//判断有多少个名词if(num!1cnt1){//有多个名词就输出NOcoutNO;return 0;}coutYES;//改句子符合语法输出YESreturn 0;
}完美撒花~