1337:【例3-2】单词查找树

单词查找树

经过单词排序后,可知相邻的每两个单词之差就是需要添加的最小必要树结点。

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int cmp(string x,string y){
 5     return x>y;
 6 }
 7 string s[8001];
 8 int main(){
 9     int len=0;
10     string str;
11     while(cin>>s[len++]);
12     sort(s,s+len-1);
13     int ans=1+s[0].length();
14     for(int i=1;i<len-1;i++){
15         int j=0;
16         while(j<min(s[i].length(),s[i-1].length())&&s[i][j]==s[i-1][j])j++;
17         ans+=s[i].length()-j;
18     }
19     cout<<ans;
20     return 0;
21 }

 

额外收获

  • string之间的比较与长度无关,从左至右逐个字母按字典序进行比较
posted @ 2021-09-05 14:07  Rekord  阅读(357)  评论(0编辑  收藏  举报