文章
4
粉丝
38
获赞
6
访问
307
#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++;
 ...
登录后发布评论
暂无评论,来抢沙发