正文

文本压缩问题2008-09-09 14:17:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/1mi2/38167.html

分享到:

#include<iostream>#include<fstream>#include<stdio.h>#include<string>#define MAX 10000using namespace std;ifstream filein("COMPRE5.DAT");ofstream fileout("comper5.out");string s[1000];int s1[1000]; int len,map[10000],fk;string doc;   void del(string a,int n){ string b(a,n,a.length()); doc=b;} void workout(){ int i,j; for(i=1;i<=len;i++)  map[i]=MAX; map[0]=0; j=0; while(doc.length()>0) {  for(i=0;i<fk;i++)  {    int n=s[i].length();   string b(doc,0,n);   if(s[i]==b)   {    if(map[j]+s1[i]<map[j+s[i].length()])     map[j+s[i].length()]=map[j]+s1[i];   }  }   del(doc,1);  j++; }}int main(){ int N,i; string temp; filein>>N; filein>>temp; fk=0; while(N>0) {  N--;  fk=0;  doc=temp;  while(filein>>temp)  {   if(temp[0]=='(')   {    for(i=1;temp[i]!=',';i++);    string a(temp,1,i-1);    s[fk]=a;    i++;    for(int j=0;temp[i]!=')';j++,i++);     s1[fk]=j;    fk++;   }   else break;  }  len=doc.length();  workout();  if(map[len]==MAX) fileout<<"0"<<endl;  else fileout<<map[len]<<endl; } return 0;}  

阅读(1558) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册