Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

什么DFA什么的~ 直接水过去了,忍不住贴段代码~~

Posted by imhy123 at 2011-08-01 15:38:36 on Problem 3332
#include<iostream>
#include<cstring>
using namespace std;

char s[1100];
int len;
int tote,pose,totfu,totpoint,posp;

bool checkshu( int start0 , int tail0 , bool havepoint )
{
	int i,start,pospoint;
    start = start0;
	if ( s[start]=='+' || s[start]=='-' ) start++;
	pospoint = -1;
	for (i=start; i<=tail0; i++)
	{
		if ( s[i]>='0' && s[i]<='9' )
		{
		}
		else if ( s[i]=='.' )
		{
			pospoint = i;
			if (!havepoint) return false;
		}
		else
			return false;
	}
	if ( pospoint==start || pospoint==tail0 )
		return false;
	return true;
}

void work()
{
	int i,start,tail;
	len = strlen( s );

    start=0;
	while ( s[start]==' ' ) start++;
	tail= len-1;
	while ( s[tail]==' ' ) tail--;
	tote=0; totfu=0; totpoint=0;
    for (i=start; i<=tail; i++)
	{
		if ( s[i]>='0' && s[i]<='9' )
		{
		}
		else if ( s[i]=='e' || s[i]=='E' )
		{
			tote++; pose=i;
		}
		else if ( s[i]=='+' || s[i]=='-' )
			totfu++;
		else if ( s[i]=='.' )
		{
			totpoint++;
		}
		else
		{
			cout<<"ILLEGAL"<<endl;
			return;
		}
	}
	if ( tote>1 || totfu>2 || totpoint>1)
	{
		cout<<"ILLEGAL"<<endl;
		return;
	}

	if (tote>0)
	{
		if ( !checkshu( start , pose-1, totpoint ) )
		{
			cout<<"ILLEGAL"<<endl;
			return;
		}
		if ( !checkshu( pose+1, tail, 0 ) )
		{
			cout<<"ILLEGAL"<<endl;
			return;
		}
	}
	else
	{
		if ( !checkshu( start , tail , totpoint ) )
		{
			cout<<"ILLEGAL"<<endl;
			return;
		}
	}
	cout<<"LEGAL"<<endl;
}


int main()
{
	int t;
	cin>>t;
	while (t--)
	{
		//cin.getline( s , 1100 , '\n' );
		cin>>s;
		work();
	}

	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator