उलट पलटनेवाला


19

आपका कार्य सरल है। कार्यक्रम मानक इनपुट से पाठ की एक पंक्ति में पढ़ता है, और यह एक ही पाठ को एक चरित्र-उलटा रूप में प्रिंट करता है। इसे और कुछ भी प्रिंट करने की अनुमति नहीं है।

उदाहरण के लिए:

इनपुट: "हैलो!", आउटपुट: "! ओललेह"

कैच है , आपके प्रोग्राम को ठीक वही काम करने में सक्षम होना है, यदि सोर्स कोड खुद कैरेक्टर-रिवर्स हो!

स्कोरिंग: मानक कोड-गोल्फ स्कोरिंग बोरिंग को सीमित करने के लिए निम्न संशोधन के साथ लागू होता है

//margorp
program//

शैली के उत्तर: कोई भी हल जो पलिंड्रोम है, गोल करने पर अंक + 25% जुर्माना लगेगा। यह जुर्माना अभी भी लागू होता है, यदि आप, उदाहरण के लिए, उस प्रोग्राम में वर्ण सम्मिलित करें जिसका कोई उपयोगी प्रभाव नहीं है, बस पैलिंड्रोम को तोड़ने के लिए।


2
"उपयोगी प्रभाव" शायद उद्देश्यपूर्ण रूप से निर्दिष्ट नहीं किए जा सकते। Eg में GolfScript, के बारे में क्या -1%#%1-/1या -1%#%(0?
पीटर टेलर

जवाबों:


14

एपीएल, ५

⌽⍞⍝⍞⊖

यह इनपुट ( ), और अंतिम अक्ष के साथ ( ), और उसके बाद एक टिप्पणी ( एक पंक्ति टिप्पणी को चिह्नित करता है ) को उलट देता है । उलट, कार्यक्रम इनपुट के साथ ( , पहले अक्ष के साथ) उलट देता है , और एक टिप्पणी के बाद होता है। क्योंकि इनपुट हमेशा एक आयामी होने वाला है, इस मामले में और कार्यात्मक रूप से समतुल्य है। यह शायद गोल्फस्क्रिप्ट समाधान की तुलना में भी स्नीकर है, इसलिए यहां एक क्लीनर समाधान (कोई टिप्पणी नहीं) है, जो 9 स्कोर करता है ।

⍬,⌽,⍞,⊖,⍬

यह पहली बार एक खाली वेक्टर को पकड़ता है ( ), इसे (मोनैडिक ,) समतल करता है , और इसे उलटता है ( , पहली धुरी के साथ)। यह अभी भी एक खाली वेक्टर छोड़ता है। फिर यह ,इनपुट ( ) को इनपुट ( ) को अछूता छोड़ देता है। यह तब ,पहले से सपाट इनपुट को समतल (मोनैडिक ) करता है और इसे उलट देता है ( अंतिम अक्ष के साथ)। फिर यह उलट इनपुट के लिए ,एक और खाली वेक्टर ( ) को (डायैडिक ) समेटता है । यह कुछ नहीं करता है, और उलटे इनपुट को पीछे छोड़ देता है। उलट, यह कार्यक्रम एक ही बात करता है, इस तथ्य पर आधारित है कि और कार्यात्मक रूप से एक-विषयक तर्कों के साथ बराबर हैं।

आप वास्तव में यह नहीं कह सकते कि मैं बेकार के पात्रों को जोड़ रहा हूं ताकि वे पलिंड्रोम को तोड़ सकें (दो अलग-अलग रिवर्स फ़ंक्शन दो या अधिक आयामी इनपुट के साथ अलग हैं। मैं सिर्फ इस तथ्य का लाभ उठा रहा हूं कि वे एक के साथ एक ही कार्य करते हैं- आयामी इनपुट)


14

यूनिक्स खोल - 8 + 25% = 10

rev||ver

cat|tacवास्तव में काम नहीं करने का पिछला उत्तर , tacलाइनों के क्रम को उलट देता है, न कि किसी रेखा के पात्रों का क्रम।


10

हास्केल, 53

main=niam
niam=interact reverse
esrever tcaretni=main

तकनीकी रूप से एक पैलिंड्रोम नहीं है, लेकिन, क्योंकि फ़ंक्शन डिक्लेरेशन ऑर्डर कोई फर्क नहीं पड़ता, एक बार उलट जाने पर आपके पास बिल्कुल वही प्रोग्राम होता है।


अच्छा (+1)। मैं विश्वास नहीं करता था कि यह वास्तव में कुछ भी किया है, इससे पहले कि मैं यह कोशिश की है ( लिंक )।
मार्टिन थूमा जूल 30'13

ले जाने के main=niamमध्य के लिए घोषणा, और आप एक विलोमपद मिलता है।
जोहान्स कुह्न

@JohannesKuhn हां, मैं मानता हूं कि यह अभी भी "उबाऊ" पैलिंड्रोम समाधान है, एक अलग उपस्थिति के साथ।
lortabac


6

Tcl, 78

puts [string rev [gets stdin]];#\
]]nidts steg[ ver gnirts[ stup;# tixe emaner

पलिंद नहीं।



इस कार्यक्रम में "नाम बदलने से बाहर" का क्या उपयोगी प्रभाव है? (मुझे नहीं पता Tcl)
vsz

कमांड exitका नाम #(# एक पैरामीटर है, टिप्पणी की शुरुआत नहीं है)। \#अगली पंक्ति में निष्पादित करेंगे #(टिप्पणी की शुरुआत नहीं क्योंकि बच गए) जो नया है exit
जोहान्स कुह्न

6

gs2, 2

(हाँ, इस भाषा को चुनौती से पहले बनाया गया था। नहीं, यह कोई मज़ाक या लफ़्फ़ाज़ी नहीं है। ASCII स्पेस ( 0x20) उल्टा है ।)

EDIT: aw, आदमी, यह सवाल सुपर पुराना है? अगर केवल मैं जल्द ही शुरू कर दिया था। : <मैं इस जवाब को सिर्फ इसलिए छोड़ दूंगा क्योंकि पास होना बहुत अच्छा है, हालाँकि।


3

गोल्फस्क्रिप्ट, 9 (7 * 1.25 = 8.75)

-1%#%1-

गंदा, गंदा, गंदा, लेकिन बेहद छोटा। -1%का अर्थ है "प्रत्येक तत्व (चरित्र), पीछे की ओर" और #"लाइन टिप्पणी" का अर्थ है। बाकी तो गोल्फकॉट I / O मैजिक का एक सा हिस्सा है।

यह सबसे छोटा "स्वच्छ" (कोई टिप्पणी नहीं) समाधान है जो मैंने पाया है ( 14 * 1.25 = 17.5 ):

'';-1%..%1-;''

अर्थ: एक खाली स्ट्रिंग को धक्का दें, इसे छोड़ें, इनपुट को उल्टा करें, दो बार इसे क्लोन करें, इसे अपने आप से विभाजित करें (दो प्रतियों का उत्पादन और एक खाली सरणी का उत्पादन), खाली सरणी से सभी को हटा दें, खाली सरणी को छोड़ दें, एक खाली स्ट्रिंग को धक्का दें और (स्पष्ट रूप से) स्टैक प्रिंट करें।


मुझे इसकी उम्मीद करनी चाहिए थी। यहां तक ​​कि 500% जुर्माना के लिए इसे विजेता बनाने का एक उच्च मौका होगा।
vsz

@vsz मैं गोल्फरस्क्रिप्ट में एक नो-कमेंट (अर्थात स्वच्छ) समाधान की तलाश में हूँ, हालाँकि।
जॉन ड्वोरक

यदि इनपुट में 1 नहीं है ..
जोहान्स कुह्न

@JohannesKuhn आप सही हैं। मैंने उस "समाधान" को गिरा दिया है।
जॉन ड्वोरक

@vsz एक और दिलचस्प चुनौती है चरित्रों की टिप्पणी करने से मना करना (और अभी भी पैलिन्ड्रोम को दंडित करना?) इसके लिए मेरे प्रतियोगी में 14 वर्ण हैं, काफी मुझे लगता है।
जॉन ड्वोरक

3

रूबी, ४४

puts gets.reverse#esrever.steg stup

एक सामान्य कार्यक्रम के अंत में सिर्फ एक टिप्पणी: पी

35 वर्ण, + 25% = 44



2

अजगर 3, 42

print(input()[::-1]);#)]1-::[)(tupni(tnirp

क्रेडिट

  • मेरे द्वारा बनाए गए 49 + 25% = 61.25 के स्कोर के साथ प्रारंभिक संस्करण
  • 61.25 से 51.25 तक अंक में सुधार के लिए अर्शजी का धन्यवाद
  • 42 के स्कोर के साथ नया संस्करण ( :-)) मेरे द्वारा बनाया गया

आप print(input()[::-1])#)]1-::[)(tupni(tnirpस्कोर को घटाकर 51.25 करने के बजाय अजगर 3 का उपयोग कर सकते हैं ।
अर्शजी जूल

1
काटने नहीं ...
ओलिवर नी

"कोई भी हल जो पलिंड्रोम है, स्कोर करने के लिए + 25% जुर्माना लगाएगा, गोल किया जाएगा। यह जुर्माना अभी भी लागू होता है, यदि आप, उदाहरण के लिए, प्रोग्राम में ऐसे अक्षर डालें, जिनका कोई उपयोगी प्रभाव न हो, सिर्फ पैलिंड्रोम को तोड़ने के लिए। । " मेरा तर्क है कि यह ;एक ऐसी प्रविष्टि है जिसका कोई उपयोगी प्रभाव नहीं है।
ओलिवर नी

2

रेम्बु : 9 (डब्ल्यू / जुर्माना) या 13 (बिना)

उबाऊ Rebmu समाधान 9 है और पैलिंड्रोमिक दंड सहन करता है। मैं इसे वैसे भी दिखाऊंगा "सिर्फ इसलिए":

rnRVaVRnr

अक्षरों के कैपिटल रन को सूचित करने की बेजोड़ चाल का उपयोग करना अलग शब्द हैं, और एक प्रमुख कैपिटल रन की कमी का मतलब है कि हम एक सेट-वर्ड नहीं बना रहे हैं, हम पांच सामान्य शब्दों का उत्पादन करते हैं:

rn rv a vr nr

जो समतुल्य कोड के लिए एक शॉर्टहैंड है (कानूनी रूप से रेम्बु भी):

return reverse a vr nr

तथ्य यह है कि वीआर और एनआर अर्थहीन हैं, कोई फर्क नहीं पड़ता, क्योंकि कुछ भी नहीं सौंपा जाने के बावजूद वे मान्य शब्द हैं। तो मूल्यांकनकर्ता केवल चलाता है return reverse a... यह दोनों तरीकों से काम करता है। लेकिन यह एक तरह से उबाऊ धोखा है: कोड में टिप्पणी नहीं की गई है, लेकिन यह मृत है और एक पथ पर निष्पादित नहीं है।

कुछ और रोमांचक के लिए जो जुर्माना नहीं करता है, इस 13 वर्ण समाधान के बारे में कैसे:

a VR :rv AvrA

आइए देखें कि इसके आगे और पीछे के मार्गों पर यह कैसे संसाधित होता है, जब इसका विस्तार किया जाता है। आगे:

a               ; evaluate a, as it is a string it has no side effects
vr: :reverse    ; "set" vr to mean what a "get" of reverse means now
a: vr a         ; assign a to calling "vr" on a, effectively reversing
                ;   ^-- result of assign is last expression, the answer!

पीछे की ओर इस प्रकार है ArvA vr: RV a:

a: reverse a    ; assign A to its reversal
vr: rv: a       ; make the abbreviation vr equal to assignment of a to rv
                ;   ^-- result of assign is last expression, the answer!

नकारात्मक पक्ष पर, पीछे की ओर का संस्करण रिवर्स के लिए संक्षिप्त नाम लिख रहा है। लेकिन हे, यह एक ताल नहीं है, और यह एक मात्र 13 अक्षर है। :-)

(नोट: यह मानता है कि आप Rebmu / args मोड में चल रहे हैं, जहां कमांड लाइन पर दुभाषिया को दिए गए प्रोग्राम के लिए डिफ़ॉल्ट तर्क है और आप परिणाम स्वीकार करते हैं। यदि मानक इनपुट से पढ़ना वास्तव में एक आवश्यकता है, तो चीजें। सरल समाधान के लिए 9 से 11 वर्णों की तरह विकसित करें: rnRVrArVRnrऔर यदि आपको दुभाषिए के अभिव्यक्ति आउटपुट को स्वीकार करने के बजाय कार्यक्रम के भीतर से मानक आउटपुट पर प्रिंट करना है, जो कुछ पात्रों को भी जोड़ देगा।)


2

जावास्क्रिप्ट, 62 * 1.25 = 78

i.split('').reverse().join('')//)''(nioj.)(esrever.)''(tilps.i

बहुत रचनात्मक नहीं है, लेकिन सबसे अच्छा मैं साथ आ सकता है। (मानता है कि इनपुट चर में संग्रहीत है i)

मुझे यह मिला:

63 वर्ण, कोई तालमेल नहीं

i.split('').reverse().join('')//)a(nioj.)(esrever.)''=a(tilps.i

लेकिन यह बहुत धोखा की तरह महसूस किया। : PI कई और तुच्छ परिवर्तन कर सकता है (जैसे कि i['split']इसके बजाय का उपयोग करना i.split), लेकिन उन सभी को अभी भी धोखा जैसा लगता है: P


मान लेता है कि इनपुट को वेरिएबल i (p=a=>a&&p()==`(p=${p})(i)`?i:i.split``.reverse().join``)(i)(60 बाइट्स) में संग्रहित किया गया है, वह काम करता है।
Esc Đi Escp

2

पाइके, 2 (+ 25%), गैर-प्रतिस्पर्धात्मक

_

Pyke इनपुट को अनुमानित रूप से लेता है और अनुमानित रूप से आउटपुट को।

_ रिवर्स फ़ंक्शन है।


1

Tcl, 99

proc unknown args {puts "Hello World!"}
}"!dlroW olleH" stup{ sgra nwonknu corp

यदि कोई कमांड जो मौजूद नहीं है उसे कहा जाता है, एक विशेष unknownकमांड को कहा जाता है जो कमांड को लोड कर सकता है। या अन्य मज़ेदार चीजें करें।


1

टी-एसक्यूएल, 86 * 1.25 = 108

यहाँ SQL सर्वर 2008 (और नए) के लिए एक उबाऊ palindromic प्रविष्टि है बस यह दिखाने के लिए कि यह संभव है।

DECLARE @ VARCHAR(MAX)='Hi'PRINT REVERSE(@)--)@(ESREVER TNIRP''=)XAM(RAHCRAV @ ERALCED

@ इनपुट टेक्स्ट रखती है, उदाहरण स्ट्रिंग "हाय"। इस प्रविष्टि की चार गिनती दो-चार इनपुट स्ट्रिंग के लिए है।


1

केजी , छत (1 + 0.25) = 2 बाइट्स

?

यह इनपुट लेता है और उलट जाता है, और अंतर्निहित आउटपुट इसे शाब्दिक रूप से आउटपुट करता है। TIO



0

QBIC , 14 + 25% = 18 बाइट्स

;?_fA|#|Af_?;

एक palindromic स्रोत कोड को रोजगार। ऐसा करने के लिए दो अलग-अलग तरीकों का उपयोग करने में कुछ अधिक समय लगता है (34 बाइट्स):

;[_lA|,1,-1|Z=Z+mid$(A,a,1)#|Af_?;

स्पष्टीकरण:

Read the input string from the command line as A$
;

FOR len(A$); a >= 1; a--
[        Starts a FOR loop
_l...|   returns the length the argument(here, A$); sets the starting point of the loop
,1       set the end point of the loop
,-1      FOR loop incrementer (or decrementer in this case)
|        Ends the argument list for the FOR loop

On each FOR iteration, add the right-most character of the input to Z$
Z=Z+mid$(A,a,1)

The cheat:
# starts a string literal, hiding the flipped source.
    The literal is closed implicitly at the end-of-file.
    The FOR loop is closed implicitly at the end-of-file.
    Z$ gets printed implicitly at the end of the program if it's non-empty

The flipped source is the same as my palindrome-code:
;       reads in A$ from the cmd line   
 ?      PRINT
  _fA|  The reversed version of A$
      # And hide the rest of our source in a literal  

0

पुष्य , 7 बाइट्स (5 + 25%)

@"i"@

इसे ऑनलाइन आज़माएं!

यह 25% जुर्माना लगाता है क्योंकि यह एक पैलिंड्रोम है, लेकिन यह सबसे अच्छा है जो मैं कर सकता था। कोई फर्क नहीं पड़ता कि कार्यक्रम के आसपास किस तरह से चलाया जाता है, यह इन 3 आदेशों को करता है:

@     \ Reverse the input
 "    \ Print
  i   \ Exit

(स्पष्ट स्टैक) या (टिप्पणी) के iलिए प्रतिस्थापन का एक ही प्रभाव है।c\



0

आर , 65 बाइट्स

संपादित करें: एक तुच्छ के लिए 25% जुर्माना लगाया, फिर भी मुझे अनदेखा किया, ग्रिम द्वारा बदल दिया।

stringi::stri_reverse(scan(,""))#))'',(nacs(esrever_irts::ignirts

इसे ऑनलाइन आज़माएं!

कहो आर के मात्र तार को संभालने की क्षमता है, भले ही आप की तरह तार के लिए बनाया गया संकुल का उपयोग करने के हैलो stringi... barf


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.