Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
害人不浅,题目倒是挺简单,就是说的不明白。害得我忙了一下午。标点可以重复计数,但是ff等只计一次。给出参考#include<iostream> #include<cstring> using namespace std; int map[256]={0}; int main() { int i; //这里有点罗嗦了 for(i='a';i<='z';i++) map[i]=0; for(i='A';i<='Z';i++) map[i]=0; map[5]=0;//it is ff map[6]=0;//it is fi map[7]=0;//it is fl map[8]=0;//it is ffi map[9]=0;//it is ffl char record[105]; int count=0; while(cin>>record) { int len=strlen(record); for(i=0;i<len;i++) { // it is `` if(record[i]=='`' && record[i+1]=='`') { count++; i++; continue; } if(record[i]=='`') { count++; continue; } // it is '' if(record[i]=='\'' && record[i+1]=='\'') { count++; i++; continue; } if(record[i]=='\'') { count++; continue; } // it is ffi // it is ffl if(record[i]=='f' && record[i+1]=='f' && (record[i+2]=='i' || record[i+2]=='l')) { if(record[i+2]=='i') { if(map[8]==0) count++; map[8]=1; } else { if(map[9]==0) count++; map[9]=1; } i=i+2; continue; } // it is ff fi fl if(record[i]=='f' && (record[i+1]=='f' || record[i+1]=='i' || record[i+1]=='l')) { if(record[i+1]=='f') { if(map[5]==0) count++; map[5]=1; } else if(record[i+1]=='i') { if(map[6]==0) count++; map[6]=1; } else { if(map[7]==0) count++; map[7]=1; } i++; continue; } if(map[(int)record[i]]!=1) { //cout<<"we have count this number"<<endl; count++; map[(int)record[i]]=1; } } // cout<<"this period is"<<count<<endl; } cout<<count<<endl; return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator