文章
5
粉丝
61
获赞
104
访问
6.2k
#include <stdio.h>
#include <string.h>
// 交换两个字符
void swap(char *x, char *y) {
    char temp = *x;
    *x = *y;
    *y = temp;
}
// 检查是否为下一个排列
int next(char *str, int length) {
    int i = length - 2;
    while (i >= 0 && str[i] >= str[i + 1]) {
        i--;
    }
    if (i == -1) {
        return 0; // 已经是最后一个排列
    }
    int j = length - 1;
    while (str[j] <= str[i]) {
        j--;
    }
    swap(&str[i], &str[j]);
    int k = i + 1, l = length - 1;
    while (k < l) {
        swap(&str[k], &str[l]);
        k++;
  ...
登录后发布评论
暂无评论,来抢沙发