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

提交了N次,改了N次,还是Runtime Error,请高手帮忙,拜托!!!

Posted by 20062507 at 2008-07-26 20:56:06 on Problem 1035
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
#define maxlen 500000
int Dictionary[26][maxlen];
string WordOrder[10001];
int Sign[maxlen];
int COUNT=1; 
int nMod=0;
int ModifiedAs[50];
void create_dict()
{
     COUNT=1;
     string s;
     int i=1;
     cin>>s;
     while(s!="#")
     {
             WordOrder[i]=s;
             int last_data=Dictionary[s[0]-'a'][0];
             if(last_data==0)
             {
                                     Dictionary[s[0]-'a'][0]=COUNT;
             }
             for(int j=1;s[j]!='\0';j++)
             {
                     if(last_data!=0)
                     {
                                     while(Dictionary[s[j]-'a'][last_data]!=0)
                                     {last_data=Dictionary[s[j]-'a'][last_data];j++;}
                                     Dictionary[s[j]-'a'][last_data]=++COUNT;
                                     last_data=Dictionary[s[j]-'a'][last_data];
                     }
                     else
                     {
                                          Dictionary[s[j]-'a'][COUNT]=++COUNT;
                     }
             }
             Sign[COUNT++]=i;
             i++;
             cin>>s;
     }
}
int check(string s)
{
    int k=0,i=0;
    while(s[i]!='\0')
    {
                     k=Dictionary[s[i]-'a'][k];
                     if(k!=0)
                     {i++;}
                     else 
                     {
                          break;
                          return 0;
                     }
    }
    return Sign[k]>0?Sign[k]:0;
}
void deleting(string s,int position)
{
     string s1=s.erase(position,1);
     int i=check(s1);
     if(i>0)
      ModifiedAs[nMod++]=i;
}
void replacing(string s,int position)
{
	string s0;
     for(char c='a';c<='z';c++)
     {
		      s0=s;
              string s1=s0.replace(position,1,1,c);
              int i=check(s1);
              if(i>0)
                ModifiedAs[nMod++]=i;
     }
}
void inserting(string s,int position)
{
     string s0;
     for(char c='a';c<='z';c++)
     {
              s0=s;
              string s1=s0.insert(position,1,c);
              int i=check(s1);
              if(i>0)
                ModifiedAs[nMod++]=i;
     }
}
int main()
{
    create_dict();
    string s;
    cin>>s;
    while(s!="#")
    {
                 int k=check(s);
                 if(k>0)
                 {
                        cout<<s<<" is correct"<<endl;
                        cin>>s;
                 }
                 else
                 {
                 cout<<s<<": ";
                 int len=s.size();
                 /**/for(int i=0;i<len;i++)
                 {
                         deleting(s,i);   
                 }
                 for(int i=0;i<len;i++)
                 {
                         replacing(s,i);
                 }
                 for(int i=0;i<len+1;i++)
                 {
                         inserting(s,i);
                 }
                 sort(ModifiedAs,ModifiedAs+nMod);
                 for(int i=0;i<nMod;i++)
                 {
                         if(ModifiedAs[i]==ModifiedAs[i+1])
                           ModifiedAs[i]=0;
                 }
                 for(int i=0;i<nMod;i++)
                 {
                         if(ModifiedAs[i]!=0)
                           cout<<WordOrder[ModifiedAs[i]]<<" ";
                 }
                 cout<<endl;
                 for(int i=0;i<nMod+1;i++)
                 {
                         ModifiedAs[i]=0;
                 }
                 nMod=0;
                 cin>>s;
                 }
    }
    system("pause");
    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