গণিত 159 140 134
সম্পাদনা করুন : পুনরাবৃত্তি ( NestWhile) ব্যবহার করে একটি সম্পূর্ণ পুনর্লিখন । অনেক দ্রুত এবং কোনও অপচয় করার প্রচেষ্টা নেই।
কোড
g@n_:=StringTake[NestWhile[#~StringReplace~{"A"-> "ABCBACBCABCBA","B"-> "BCACBACABCACB",
"C"->"CABACBABCABAC"}&,"ABC",StringLength[#]<n&],n]
ব্যবহার
দশ মিলিয়ন অক্ষর সহ একটি ত্রৈমাসিক বর্গক্ষেত্র মুক্ত শব্দ তৈরি করতে এটি প্রায় 1/40 সেকেন্ড সময় নেয়
g[10]
g[53]
g[506]
AbsoluteTiming[g[10^6];]

যাচাইকরণ
f স্ট্রিংটি বর্গমুক্ত কিনা তা পরীক্ষা করবে।
f[s_]:=StringFreeQ[s, x__~~x__]
উপরের ফলাফলগুলি এবং একটি কেস যা "সিসি" স্ট্রিংটিতে উপস্থিত রয়েছে তা পরীক্ষা করা হচ্ছে।
f@Out[336]
f@Out[337]
f@Out[338]
f["ABCBACBCABCBABCACBACCABCACBCABACBABCABACBCACBACABCACBA"]
সত্য
সত্য
সত্য
মিথ্যা
exec"x+=[1-y for y in x];"*nদক্ষতার ব্যয়ে 6 টি অক্ষর বাঁচায় - তবে আরে এটি গল্ফ!