void test_anagrams(){ strings_l test {"le", "chien", "marche", "vers", "sa", "niche", "et", "trouve", "une", "limace", "de", "chine", "nue", "pleine", "de", "malice", "qui", "lui", "fait", "du", "charme"}; std::vector<strings_l> res {{"nue", "une"}, {"limace", "malice"}, {"marche", "charme"}, {"chien", "niche", "chine"}}; std::cout << (unorder(anagrams(test))==unorder(res)) << '\n'; test = {"aba", "baa", "abb"}; res = {{"aba", "baa"}}; std::cout << (unorder(anagrams(test))==unorder(res)) << '\n'; test = {"aba"}; res = {}; std::cout << (unorder(anagrams(test))==unorder(res)) << '\n'; test = {}; res = {}; std::cout << (unorder(anagrams(test))==unorder(res)) << '\n'; }
int main() { /* char a[] = "hydroxydeoxycorticosterones"; char b[] = "hydroxydesoxycorticosterone"; char c[] = "this"; */ char a[] = "basiparachromatin"; char b[] = "marsipobranchiata"; char c[] = "this"; printf("%s and %s are %sanagrams \n", a, b, anagrams(a,b)?"":"not "); printf("%s and %s are %sanagrams \n", b, c, anagrams(b,c)?"":"not "); return 0; }
anagrams(char *string,int i,int n){ int j; if(i==n){ printf("%s\n",string); } else{ for(j=i;j<=n;j++){ swap(string+i,string+j); anagrams(string,i+1,n); swap(string+i,string+j); } } }
void Main() { vector<string> input = { "", "" }; print(anagrams(input)); }
static int multi(const struct wordlist * const wl, int argc, char * argv[]) { if (argc == 3) return anagrams(wl, argv[2], strlen(argv[2]), prn, stdout); return usage(argv[0]); }
int main(){ char string[1000]; scanf("%s",string); anagrams(string,0,strlen(string)-1); }