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 |
老大帮忙看一下!//自我感觉良好,但是一提交就Wrong Answer. //请老大们看看是那种情况没有考虑到。 #include <iostream.h> #include <string.h> #include <stdlib.h> struct Node { char word [81]; int times; Node * next; }; inline int isValid ( char ch ) { int flags = 0; char sample [] = ",.;\'`\"()/:-"; if ( ( ch >= 'A' && ch <= 'Z' ) || ( ch >= 'a' && ch <= 'z' ) || ( ch >= '0' && ch <= '9' ) ) return 1; for ( int i = 0; i < 11; i++ ) if ( ch == sample [i] ) { flags = 1; break; } if ( flags ) return 0; exit (0); } void log ( Node * head, char * word ) { Node * current; for ( current = head; current -> next != NULL; current = current -> next ) { if ( strcmp ( current -> next -> word, word ) == 0 ) { current -> next -> times ++; break; } if ( strcmp ( current -> next -> word, word ) > 0 ) { Node * p = new Node; strcpy ( p -> word, word ); p -> times = 1; p -> next = current -> next; current -> next = p; break; } } if ( current -> next == NULL ) { Node * p = new Node; strcpy ( p -> word, word ); p -> times = 1; p -> next = current -> next; current -> next = p; } } void deal ( Node * head, char * p ) { char temp [81]; int k = 0, front = 0, rear = 0; while ( p [k] ) { while ( ! isValid ( p [k] ) ) k++; front = k; while ( isValid ( p [k] ) ) k++; rear = k; for ( int i = front; i < rear; i++ ) temp [ i - front ] = p [i]; temp [ i - front ] = 0; log ( head, temp ); cout << temp << endl; } } void main() { char buff[81]; Node * head, * current; head = new Node; head -> word [0] = 0; head -> times = 0; head -> next = NULL; cin >> buff; while ( cin ) { strlwr ( buff ); deal ( head, buff ); cin >> buff; } int max = 0; for ( current = head -> next; current != NULL; current = current -> next ) if ( max < current -> times ) max = current -> times; cout << max << " occurrences\n"; for ( current = head -> next; current != NULL; current = current -> next ) if ( current -> times == max ) cout << current -> word << endl; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator