求助为何全部Too many or too few lines

P2580 于是他错误的点名开始了

噗,忽然发现debug时的一行输出语句没删。
by Rye_Catcher @ 2017-12-30 11:22:04


@[Rye\_Catcher](/space/show?uid=61382) 呸两行
by Rye_Catcher @ 2017-12-30 11:23:28


现在AC了
by Rye_Catcher @ 2017-12-30 11:23:37


然后我没有调试输出还是Too many or too few lines,下载测试点自测是对的 ```cpp #include<iostream> #include<cstdio> #include<string> #include<vector> #include<iterator> using namespace std; struct node { char value; //元素的值 bool word; //是否为单词节点 bool ifind; //节点是否被作为单词而访问 vector<node*>son; node(){ value = 0; word = false; ifind = false; } ~node(){ vector<node*>::iterator it; for(it = son.begin();it!=son.end();it++){ delete *it; } } }; class trie { public: node root; public: int insert(string &str); int find(string &str); }; int trie::insert(string &str) { string::iterator it; node *p = &root; for(it=str.begin();it!=str.end();it++){ bool k =false; //子节点中是否含有与待检测字符匹配的 vector<node*>::iterator vit; for(vit = p->son.begin();vit != p->son.end();vit++){ if(*it == (*vit)->value){ k = true; p = (*vit); break; } } if(k == false){ p->son.push_back(new node); p = *(p->son.end()-1); p->value = *it; } } p->word = true; return 0; } int trie::find(string &str) { string::iterator it; node *p =&root; for(it=str.begin();it!=str.end();it++){ bool k = false; // 是否找到匹配的字符 vector<node*>::iterator vit; for(vit = p->son.begin();vit != p->son.end();vit++){ if(*it == (*vit)->value){ k =true; p = (*vit); break; } } if(k == false)return 0; } if(p->word == false)return 0; else if(p->ifind == true)return 1; else { p->ifind = true; return 2; } } int main() { int n=0,m=0; trie t; string str; cin>>n;getchar(); for(int i=0;i<n;i++){ getline(cin,str); t.insert(str); str.clear(); } cin>>m;getchar(); int k=0; for(int i=0;i<m;i++){ if(k==1)cout<<endl; k = 1; getline(cin,str); int ans = t.find(str); if(ans == 0)cout<<"WRONG"; else if(ans == 1)cout<<"REPEAT"; else if(ans == 2)cout<<"OK"; } return 0; } ```
by 宇道人 @ 2018-08-01 11:45:40


|