Một xâu ký tự có thể bao gồm các ký tự Alphabet, ký tự trắng, dấu phẩy (,), dấu chấm (.), dấu hai chấm(:). Một từ là một xâu con chỉ chứa các ký tự Alphabet, ngoài ra hai ký tự liền trước và liền sau của xâu con đó (nếu có) sẽ không phải là ký tự Alphabet.
Task Hãy lập trình tìm từ có chiều dài lớn nhất trong xâu và số từ của xâu đó.
Input • Dòng duy nhất chứa một xâu ký tự s có độ dài không quá 200 ký tự.
Output • Dòng đầu tiên in độ dài của từ có chiều dài lớn nhất trong xâu.
• Dòng thứ hai in số từ của xâu.
Samples
input Programming Java in oj
output 11 4
input husccontest
output 11 1
Code:
#include <bits/stdc++.h>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char *s = new char[201];
gets(s);
int x = 0 , b[100000] , count = 0, t = 0 ;
for(int i = 0 ; i < strlen(s) ; i++)
{
if(*(s+i) == '.' || *(s+i) == ',' || *(s+i) == ':' || *(s+i) == ' ')
{
if(t >= 1)
{
b[x++] = count;
count = 0;
}
}
if(*(s+i) >= 'a' && *(s+i) < 'z' || *(s+i) >= 'A' && *(s+i) <= 'Z')
{
count++;
if(count == 1)
t++;
}
}
if(*(s+strlen(s)-1) != ',' , *(s+strlen(s)-1) != ':' , *(s+strlen(s)-1) != ':' , *(s+strlen(s)-1) != ' ')
b[x++] = count;
int max = b[0];
for(int i = 0 ; i < x ; i++)
{
if(max < b[i])
max = b[i];
}
cout<<max<<endl;
cout<<t;
return 0;
}