360 4.2笔试
笔试第二题是判断语法题,就是主谓宾那题。求看看哪错了。
第一次是9%。
#include<bits/stdc++.h>
#include<sstream>
using namespace std;
map<string, int> mp;
signed main() {
int n1, n2, n3;
string str;
cin >> n1 >> n2 >> n3; getchar();
for (int i = 0; i < n1; ++ i) {
cin >> str;
mp[str] = 1;
}
for (int i = 0; i < n2; ++ i) {
cin >> str;
mp[str] = 2;
}
for (int i = 0; i < n3; ++ i) {
cin >> str;
mp[str] = 3;
}
int m; cin >> m; getchar();
for (int i = 0; i < m; ++ i) {
getline(cin, str);
stringstream ss(str);
int flag = 0;
while (ss >> str) {
if (mp[str] == 1) {
if (flag == 0 || flag == 1) flag = 1;
else flag = -1;
}
if (mp[str] == 2) {
if (flag == 1) flag = 2;
else flag = -1;
}
if (mp[str] == 3) {
if (flag == 2 || flag == 3) flag = 3;
else flag = -1;
}
}
if (flag == 3 || flag == 2) cout << "YES\n";
else cout << "NO\n";
}
return 0;
} #include<bits/stdc++.h>
#include<sstream>
using namespace std;
map<string, int> mp;
vector<string> v[3];
signed main() {
int n1, n2, n3;
string str;
cin >> n1 >> n2 >> n3; getchar();
for (int i = 0; i < n1; ++ i) {
cin >> str;
mp[str] = 1;
}
for (int i = 0; i < n2; ++ i) {
cin >> str;
mp[str] = 2;
}
for (int i = 0; i < n3; ++ i) {
cin >> str;
mp[str] = 3;
}
int m; cin >> m; getchar();
for (int i = 0; i < m; ++ i) {
getline(cin, str);
string tmp = "";
int flag = 0;
for (int i = 0; i < str.size(); ++ i) {
if (str[i] == ' ') {
if (flag == 0 && mp[tmp] == 1) flag = 1;
else if(flag == 1 && mp[tmp] == 1) flag = 1;
else if (flag == 1 && mp[tmp] == 2) flag = 2;
else if (flag == 2 && mp[tmp] == 3) flag = 3;
else if (flag == 3 && mp[tmp] == 3) flag = 3;
else {
tmp = "";
flag = -1;
break;
}
tmp = "";
}
else tmp += str[i];
}
if (tmp != "") {
if (flag == 1 && mp[tmp] == 2) flag = 2;
else if (flag == 2 && mp[tmp] == 3) flag = 3;
else if(flag == 3 && mp[tmp] == 3) flag = 3;
}
if (flag == 3 || flag == 2) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
int n1, n2, n3;
Scanner in = new Scanner(System.in);
TreeMap<String, Integer> mp = new TreeMap<String, Integer>();
n1 = in.nextInt();
n2 = in.nextInt();
n3 = in.nextInt();
for (int i = 0; i < n1; ++ i) {
String s = in.next();
mp.put(s, 1);
}
for (int i = 0; i < n2; ++ i) {
String s = in.next();
mp.put(s, 2);
}
for (int i = 0; i < n3; ++ i) {
String s = in.next();
mp.put(s, 3);
}
int m = in.nextInt();
String tmp = in.nextLine();
for (int i = 0; i < m; ++ i) {
String l = in.nextLine();
Scanner ss = new Scanner(l);
String nxt;
int flag = 0;
while (ss.hasNext()) {
nxt = ss.next();
if (mp.get(nxt) == 1) {
if (flag == 0 || flag == 1) flag = 1;
else {
flag = -1;
break;
}
}
if (mp.get(nxt) == 2) {
if (flag == 1) flag = 2;
else {
flag = -1;
break;
}
}
if (mp.get(nxt) == 3) {
if (flag == 2 || flag == 3) flag = 3;
else {
flag = -1;
break;
}
}
}
if (flag == 2 || flag == 3) System.out.println("YES");
else System.out.println("NO");
}
}
} 
查看4道真题和解析