Untitled
unknown
c_cpp
3 years ago
1.0 kB
6
Indexable
#include <stdio.h> #include <stdlib.h> #include <string.h> char s[21], p[21], ans[21]; int lens, lenp, tmp = 0; void solve(int index_s, int index_p, int pos){ if(index_s == lens && index_p == lenp){ tmp = 1; for(int i = 0; i < pos; i++){ if(i == pos-1 && ans[i] == ' ') break; //有可能最後一個字元是空格 else printf("%c", ans[i]); } printf("\n"); return; } if(index_s == lens || index_p == lenp) return; if(p[index_p] == '#'){ ans[pos] = s[index_s]; pos = pos + 1; ans[pos] = ' '; solve(index_s+1, index_p+1, pos+1);//上下兩者的順序不可掉換 solve(index_s+1, index_p, pos); } else{ if(s[index_s] == p[index_p]) solve(index_s+1, index_p+1, pos); else return; } } int main(){ scanf("%s %s",s,p); lens = strlen(s); lenp = strlen(p); solve(0, 0, 0); if(tmp == 0) printf("What the hack!?\n"); }
Editor is loading...