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

为何WA?(附代码)。那位高手帮忙修正后,发到jianfengwen◎163.com中。拜托!!!

Posted by fortunato at 2008-01-16 12:16:51 on Problem 1035
#include<iostream>
#include<string>
using namespace std;
#define max 10001
string w[max];
string result[max][551];


void deal(string w[],int c,string wt[],int ct)
{
	int count;
	int flag;
	for(int i=0;i<ct;i++)
	{
		flag=0;
		count=0;
		for(int j=0;j<c;j++)
		{
			if(wt[i].length()==w[j].length())
			{
				if(wt[i]==w[j])
				{
				//equal
					flag=1;
					result[i][0]="is corrent";
					result[i][1]="*";            
					break;
				}
				else 
				{
				//replace
					int q=0,k=0;
					while(q<w[j].length())
					{
						if(w[j].substr(q,1)!=wt[i].substr(q,1))	
						{
							k++;
						}
						
						if(k>1)
						{
							break;
						}
						q++;
					}
					if(k==1)
					{
						result[i][count++]=w[j];
					}
				}
			}
			else if(wt[i].length()==w[j].length()+1)
			{
			//	delete
				int p=0,q=0,k=0;
				string str;
				while(p<wt[i].length())
				{
					if(w[j].substr(q,1)!=wt[i].substr(p,1))	
					{
						if(p==0)
						{
							str=wt[i].substr(1,wt[i].length()-1);
						}
						else if(p==wt[i].length()-1)
						{
							str=wt[i].substr(0,wt[i].length()-1);
						}
						else 
						{
							str=wt[i].substr(0,p)+wt[i].substr(p+1,wt[i].length()-p);
						}

						if(w[j]==str)
						{
							result[i][count++]=w[j];
						}
						else break;
					}
					p++;q++;
				}
			}
			else if(wt[i].length()==w[j].length()-1)
			{
			//	insert
				int q=0,p=0,k=0;
				string str;
				while(q<w[j].length())
				{
					if(w[j].substr(q,1)!=wt[i].substr(p,1))	
					{
						if(q==0)
						{
							str=w[j].substr(1,w[j].length()-1);
						}
						else if(q==w[j].length()-1)
						{
							str=w[j].substr(0,w[j].length()-1);
						}
						else 
						{
							str=w[j].substr(0,q)+w[j].substr(q+1,w[j].length()-q);
						}

						if(wt[i]==str)
						{
							result[i][count++]=w[j];
						}
						else break;
					}
					p++;q++;
				}
			}
		}
		if(flag==0)
			result[i][count++]="*";
	}

	int t=0;                  //output
	for(int j=0;j<ct;j++)         
	{
		cout<<wt[j];
		if(result[t][0]!="is corrent")
			cout<<": ";
		else cout<<" ";
		for(int i=0;i<550;i++)
		{
			if(result[j][i]!="*")
			{
				cout<<result[j][i]<<" ";
			}
			else break;
		}
		t++;
		cout<<endl;
	}
}

void main()
{
	string wt[max];
	string s1,s2;
	int c=0,ct=0;
	cin>>s1;
	while(s1!="#")
	{
		w[c++]=s1;
		cin>>s1;
	}


	while(true)
	{
		cin>>s2;
		if(s2!="#")
			wt[ct++]=s2;
		else break;
	}
	deal(w,c,wt,ct);
	ct=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