美团校招2021第十场第三题
我的代码复杂度太大求大佬优化以下
#include
#include
#include
int main() {
int j = 0;
int x0 = 0, x1[500000], M = 0;
scanf("%d", &x0);
for (int i = 0; i < x0; i++) {
scanf("%d", &x1[i]);
char x3[500000];
scanf("%s", &x3);
scanf("%d", &M);
char x4[500000];
scanf("%s", &x4);
for (int i = 0; i < M; i++) {
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'M' && x3[j] == '1') {
x3[j] = '2';
printf("%d\n", j + 1);
goto loop;
}
}
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'M' && x3[j] == '0') {
x3[j] = '1';
printf("%d\n", j + 1);
goto loop;
}
}
if (j != sizeof(x3)) {
break;
}
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'F' && x3[j] == '0') {
x3[j] = '1';
printf("%d\n", j + 1);
goto loop;
}
}
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'F' && x3[j] == '1') {
x3[j] = '2';
printf("%d\n", j + 1);
goto loop;
}
}
loop:;//if(j!=i){break;}
}
}
return 0;
}
#include
#include
#include
int main() {
int j = 0;
int x0 = 0, x1[500000], M = 0;
scanf("%d", &x0);
for (int i = 0; i < x0; i++) {
scanf("%d", &x1[i]);
char x3[500000];
scanf("%s", &x3);
scanf("%d", &M);
char x4[500000];
scanf("%s", &x4);
for (int i = 0; i < M; i++) {
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'M' && x3[j] == '1') {
x3[j] = '2';
printf("%d\n", j + 1);
goto loop;
}
}
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'M' && x3[j] == '0') {
x3[j] = '1';
printf("%d\n", j + 1);
goto loop;
}
}
if (j != sizeof(x3)) {
break;
}
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'F' && x3[j] == '0') {
x3[j] = '1';
printf("%d\n", j + 1);
goto loop;
}
}
for ( j = 0; j < sizeof(x3); j++) {
if (x4[i] == 'F' && x3[j] == '1') {
x3[j] = '2';
printf("%d\n", j + 1);
goto loop;
}
}
loop:;//if(j!=i){break;}
}
}
return 0;
}
全部评论
相关推荐
点赞 评论 收藏
分享

点赞 评论 收藏
分享