21 lines
694 B
Text
21 lines
694 B
Text
ClearAll[Teacuppable]
|
|
TeacuppableHelper[set_List] := Module[{f, s},
|
|
f = First[set];
|
|
s = StringRotateLeft[f, #] & /@ Range[Length[set]];
|
|
Sort[s] == Sort[set]
|
|
]
|
|
Teacuppable[set_List] := Module[{ss, l},
|
|
l = StringLength[First[set]];
|
|
ss = Subsets[set, {l}];
|
|
Select[ss, TeacuppableHelper]
|
|
]
|
|
s = Import["http://wiki.puzzlers.org/pub/wordlists/unixdict.txt", "String"];
|
|
s //= StringSplit[#, "\n"] &;
|
|
s //= Select[StringLength /* GreaterThan[2]];
|
|
s //= Map[ToLowerCase];
|
|
s //= Map[{#, Sort[Characters[#]]} &];
|
|
s //= GatherBy[#, Last] &;
|
|
s //= Select[Length /* GreaterEqualThan[2]];
|
|
s = s[[All, All, 1]];
|
|
s //= Select[StringLength[First[#]] <= Length[#] &];
|
|
Flatten[Teacuppable /@ s, 1]
|