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"); } } }