RE了不知道哪错了,来个大佬救救孩子吧QAQ;
查看原帖
RE了不知道哪错了,来个大佬救救孩子吧QAQ;
558667
Keyzee楼主2021/10/20 18:04
#include<bits/stdc++.h>
using namespace std;
string s[300]; int k,l;
vector<string>vect;

struct node {
	int len;
	string wz, sz;
}T[260];

bool cmp(node a, node b) {
	return (a.len == b.len ? a.wz < b.wz : a.len < b.len);
}
void work(string a,int x) {
	T[x].wz = a.substr(a.find(',') + 1, a.find(')') - 1 - a.find(','));
	T[x].sz = a.substr(1, a.find(',') - 1);
	T[x].len = T[x].wz.length();
	vect.push_back(T[x].wz);
}
int main() {
	bool ppdd = true;
	while (cin>>s[k]) {
		if (s[k][1] != ')') {
			vector<string>::iterator it = find(vect.begin(), vect.end(), s[k].substr(s[k].find(',')+1,s[k].find(')')-1-s[k].find(',')));
			if (it == vect.end() ){
				work(s[k], k);
				k++;
			}
			else {
				ppdd = false;
			}
		}
		else {
			for (int i = 0; i < k; i++) {
				vector<string>::iterator it2 = find(vect.begin(), vect.end(), T[i].wz.substr(0, T[i].wz.length() - 1));
				if (it2 != vect.end()) {
					ppdd = true;
				}
				else {
					ppdd = false;
				}
			}
			if (ppdd) {
				sort(T, T + k, cmp);
				for (int i = 0; i < k ; i++) {
					cout << T[i].sz << " ";
				}
				l = k;
				memset(s, 0, sizeof(s));
				vect.clear();
				k = 0;
				cout << "\n";
			}
			else {
				cout << "not complete" << "\n";
			}
		}
	}
	return 0;
}
2021/10/20 18:04
加载中...