P1308 [NOIP 2011 普及组] 统计单词数

发布时间:2026/7/20 16:56:41
P1308 [NOIP 2011 普及组] 统计单词数 题目链接P1308 [NOIP 2011 普及组] 统计单词数这道题整体不算难主要是有一个点他单词之间的空格可能不止一个即两个单词之间空格可能有多个这就导致了我刚开始的代码错误。以下是我的代码#includeiostreamusingnamespacestd;#includestring#includevectorintans100000000;#definelllonglongintll cnt0;boolcompare(string a,string b){if(a.size()!b.size())returnfalse;else{for(inti0;ia.size();i){if((a[i]!b[i])(a[i]32!b[i])(a[i]-32!b[i]))returnfalse;}}returntrue;}intmain(){string a;cina;cin.ignore();string b;string c;inti0;getline(cin,c);intpoi0;while(poic.size()){while(poic.size()c[poi] ){poi;}while(poic.size())break;string cw;intwspoi;while(poic.size()c[poi]! ){cwc[poi];}if(compare(a,cw)){cnt;ansmin(ans,ws);}}if(ans100000000)cout-1;else{coutcnt ans;}return0;}注意几个细节这里大小写转换其实是有函数可以直接转换的但我这里没有用采用两个ASK码值的差值在实际做题中如果忘记了差值为32也可以进行一个简单的测试即可测试出来并不需要查询外部资料//#includeiostream//using namespace std;//int main() {// cout b - B;// return 0;//}第二个地方即是cin.ignore的作用deepseek的解释所以这句话的作用就是把这个缓冲区里面内容清空了让他能正常读到后续内容