题目的意思就是给出很多字符串,每一个字符串可以复制这个字符串,或者删掉最后一个字母,问最少敲几次键盘。
例如、
this
thin
就只要敲5次。敲个this四次。然后删掉s复制一遍,加个n。总共5次。排个序,挨个比较就行。。
AC代码:
#include<iostream>
#include<string>
#include<algorithm>
#include<stdio.h>
using namespace std;
const int N = 100 ;
string first;
string str[N];
int main () {
int c;
int num;
cin >> c;
while (c--) {
int sum = 0;
cin >> num ;
getchar();
for (int i = 0 ; i < num ;i++) {
cin >> str[i];
}
first = str[0];
sort(str , str + num);
sum = str[0].size();
for (int i = 1 ; i < num ;i++) {
int j;
for (j = 0 ; j < str[i - 1].size() && j < str[i].size() ; j++) {
if (str[i][j] != str[i - 1][j])
break;
}
sum += str[i].size() - j;
}
cout << sum << endl;
for (int i = 0 ; i < num ;i++) {
cout << str[i] <<endl;
}
}
}