首页 > 其他 > 详细

单词查找树

时间:2017-08-24 23:40:05      阅读:482      评论:0      收藏:0      [点我收藏+]

单词查找树

技术分享

技术分享

 

分析:

技术分享

技术分享

技术分享

 

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 using namespace std;
 5 int i,j,n,t,k;
 6 string a[8001];//数组可以达到32*1024=32768,一个单词一个字节 ,一个换行符2个字节
 7 string s;
 8 int main()
 9 {
10     //freopen("word.txt","r",stdin);
11     //freopen("word.out","w",stdout);
12     while(cin>>a[++n]);//读入文件中的单词并存储在数组a中
13     /*
14     while(cin>>s)
15     {
16         a[++n]=s;
17     }
18     */
19     n--;
20     for(i=1;i<n;i++)//单词从小到大排序,选排可以改为快排sort(a+1,a+1+n)
21     {
22         for(j=i+1;j<=n;j++)
23         {
24             if(a[i]>a[j])//两个单词进行交换 
25             {
26                 s=a[i];
27                 a[i]=a[j];
28                 a[j]=s;
29             }
30         }
31     } 
32     //cout<<n<<endl;
33     //for(i=1;i<=n;i++) cout<<a[i]<<endl;
34         t=a[1].length();//先累加第一个单词的长度
35         for(i=2;i<=n;i++)//依次计算每个单词对前一个单词的差 
36         {
37             j=0;
38             while(a[i][j]==a[i-1][j]&&j<a[i-1].length())
39                 j++;//求两个单词相同部分的长度
40             t+=a[i].length()-j;//累加两个单词的差length(a[i])-j 
41         } 
42         cout<<t+1<<endl;
43         return 0;    
44 } 
45  

 

 

 

 

 

 

 

单词查找树

原文:http://www.cnblogs.com/Renyi-Fan/p/7425514.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!