我代码:
#include<bits/stdc++.h>
using namespace std;
string a[32001];
int n,mx;
int main(){
while (getline(cin,a[++n]));
n--;
sort(a+1,a+n+1);
mx=a[1].length();
for (int i=2;i<=n;i++){
int j=0;
while (j<a[i-1].length()&&a[i][j]==a[i-1][j]) j++;
mx+=a[i].length()-j;
}
cout<<mx+1;
}
题解:
#include <bits/stdc++.h>
using namespace std;
string s[10086];
int main () {
int len = 0;
while (cin >> s[++len])
continue;
sort(s + 1, s + len + 1);
int length = 0;
for (int i = 1; i <= len; i++) {
if (i == 1) {
length += s[i].length();
continue;
}
int tmp = 0;
while (s[i][tmp] == s[i - 1][tmp] && tmp < s[i - 1].length())
tmp++;
length += s[i].length() - tmp;
}
printf("%d", ++length);
return 0;
}
请大佬帮个忙