#include <stdio.h> (30951)#include <string.h> int main() { int n; scanf("%d", &amp;n); char bin[501]; scanf("%s", bin); // 判断是否为全0或全1 int allZero = 1, allOne = 1; for (int i = 0; i < n; i++) { if (bin[i] != '0') { allZero = 0; break; } } for (int i = 0; i < n; i++) { if (bin[i] != '1') { allOne = 0; break; } } if (allZero || allOne) { printf("%s\n", bin); return 0; } char minBin[501]; strcpy(minBin, bin); for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { char temp[501]; strcpy(temp, bin); for (int k = i; k <= j; k++) { temp[k] = bin[j - (k - i)]; } if (strcmp(temp, minBin) < 0) { strcpy(minBin, temp); } } } printf("%s\n", minBin); return 0; }这个代码有啥问题