自己写的。C语言。思路还算简洁。题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5af18ba2eb45443aa91a11e848aa6723
#include<stdio.h>
#include<math.h>
int main() {
int n, i, j, temp;
double min;
scanf("%d", &n);
char line[n][102];
double weight[n];
for (i = 0; i < n; i++) {
scanf("%s", line[i]);
}
for (i = 0; i < n; i++) {
weight[i] = 0;
j = 0;
while (line[i][j] != '\0') {
if (line[i][j] <= 'Z') {
temp = line[i][j] - 'A';
} else {
temp = line[i][j] - 'a' + 26;
}
weight[i] += temp * pow(52, (99 - j));
j++;
}
}
while (1) {
min = pow(52, 102);
for (i = 0; i < n; i++) {
if (weight[i] < min) {
min = weight[i];
}
}
if (pow(52, 102) - min < 1) {
break;
}
for (i = 0; i < n; i++) {
if (weight[i] - min < 1) {
printf("%s\n", line[i]);
weight[i] = pow(52, 102);
i = n;
}
}
}
return 0;
}
查看21道真题和解析