如果出題者有看到的話 希望可以多增加些答案
#include <stdio.h>
int main() {
int t;
scanf("%d", &t);
for(int cas = 0; cas < t; cas++) {
int ans = 0, an[100] = {};
char q[101];
int n;
scanf("%d", &n);
scanf("%s", &q);
for(int i = 0; i < n; i++) {
if(q[i]=='.'&&!f(i, an)) {
if(i+1<100)
ans++, an[i+1] = 1;
}
}
printf("Case %d: ", cas+1);
printf("%d", ans);
if(ans)
printf("(");
int pt = 0;
for(int i = 0; i < 100&&pt<ans; i++){
if(an[i]) {
printf("%d", i+1);
if(pt+1<ans)
printf(",");
pt++;
}
}
if(ans)
printf(")");
printf("\n");
}
}
int f(int l, int an[]) {
if(an[l])
return 1;
if(l-1>0)
if(an[l-1])
return 1;
if(l+1<100)
if(an[l+1])
return 1;
return 0;
}
以上是我的解法 (C)
像者種有標準答案的題目 只能慢慢try看作者要得是哪一種解法 挺煩人的@w@