在一本通上见过但是从来没上手写过,今天居然出现在pdf里(震惊.jpg)
按之前我了解的思路就是用一个 sort 进行排序(计算差值),把前后两个字符串的长度差相加即可,真正写一次就觉得跟踹树完全没关系。不过做累加器的时候可以把两个串加一下,最后把差都加起来这个思路还是蛮不错的。
#include <bits/stdc++.h>
using namespace std;
string s[10086];
int n,len;
int main ()
{
freopen("word.in","r",stdin);
freopen("word.out","w",stdout);
while(cin>>s[++n]);
sort(s+1,s+n+1);
for(int i=1;i<=n;i++)
{
if(i!=1)
{
int j=0;
while(s[i][j]==s[i-1][j] && j<s[i-1].size()) j++;
len+=s[i].length()-j;
}
else len+=s[i].size();
}
printf("%d",len+1);
return 0;
}