自己写的。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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务