Fannkuch एक क्लासिक बेंचमार्क प्रोग्राम है। नाम जर्मन "Pfannkuchen" से आता है - पेनकेक्स- पेनकेक्स के ढेर के कतरन के एल्गोरिथ्म के समानता के लिए। संख्याओं का एक फेनुच क्रम निम्नानुसार बनता है:
उदाहरण के लिए {1 ..... n} का क्रमचय लें: {4,2,1,5,3}। पहले तत्व को लें, यहां 4, और पहले 4 तत्वों के क्रम को उल्टा करें: {5,1,2,4,3}। इसे तब तक दोहराएं जब तक कि पहला तत्व 1 न हो जाए, इसलिए फ़्लिपिंग कुछ और नहीं बदलेगी: {3,4,2,1,5}, {2,4,3,1,5}, {4,2,3 1,5}, {1,3,2,4,5}
आपको एक प्रोग्राम या फ़ंक्शन लिखना है जो वर्णमाला वर्णों के तार के लिए एक फेनचुक-जैसे अनुक्रम की गणना करता है। प्रत्येक बार सूची के कितने तत्वों को फ़्लिप किया जाना चाहिए यह इंगित करने के लिए संख्याओं का उपयोग करने के बजाय, वर्णमाला में एक अक्षर की स्थिति का उपयोग किया जाना चाहिए। उदाहरण के लिए, एक अग्रणी c
इंगित करेगा कि आपको पहले 3 तत्वों के क्रम को उलट देना चाहिए, जबकि एक अग्रणी a
इंगित करता है कि अनुक्रम पूरा हो गया है।
इनपुट
इनपुट को स्ट्रिंग के माध्यम से या फ़ंक्शन तर्क के रूप में प्रदान किया जाएगा। स्ट्रिंग में 1 और 26 अलग-अलग लोअरकेस अक्षर होंगे। स्ट्रिंग्स में ऐसे अक्षर नहीं होंगे जिनके समतुल्य सूचकांक फेनचुक एल्गोरिदम को मौजूद से अधिक तत्वों को फ्लिप करने का कारण होगा।
उत्पादन
प्रोग्राम या फ़ंक्शंस लौटने चाहिए या प्रिंट करना चाहिए जब तक a
कि प्रारंभिक स्ट्रिंग सहित एक प्रमुख सामना नहीं किया जाता है, तब तक फन्चुक एल्गोरिदम को लागू करने से उत्पन्न होने वाले शब्दों के अनुक्रम को रोक दिया जाए । उदाहरण के लिए, यदि इनपुट है bca
, तो आप प्रिंट कर सकते हैं:
bca
cba
abc
मुद्रित परिणाम किसी भी उचित विभाजक का उपयोग कर सकते हैं- अल्पविराम, नए अंक, आदि। व्हॉट्सएप का कोई भी विकल्प स्वीकार्य है।
एक अन्य उदाहरण के रूप में, यदि आपका इनपुट है eabdc
तो आप वापस लौट सकते हैं:
("eabdc"
"cdbae"
"bdcae"
"dbcae"
"acbde")
नियम और स्कोरिंग
यह कोड-गोल्फ है - सबसे छोटा कार्यक्रम जीतता है। स्टैंडर्ड लूपहोल्स को बंद कर दिया गया है।
proc fcmp
यहाँ बहुत कुछ नहीं मिलता है।