पॉलिंड्रोमिक पैलिंड्रोम चेकर [बंद]


37

परीक्षण करने के लिए एक प्रोग्राम लिखें यदि एक स्ट्रिंग पैलिंड्रोमिक है, तो अतिरिक्त शर्त के साथ कि प्रोग्राम स्वयं पेलिंड्रोमिक हो।


1
अगर भाषा में अंत तक की टिप्पणियां हैं, तो यह तुच्छ है, इसलिए मुझे लगता है कि उन्हें अस्वीकृत कर दिया जाना चाहिए।
जोए

1
@Joey मैं ख़ुशी से इस तरह की टिप्पणियों के उपयोग को हतोत्साहित करूंगा, लेकिन सवाल पूछने के बाद उन्हें अस्वीकार करना उन लोगों पर कठोर है, जिन्होंने पहले ही जवाब दे दिया है। @ वेंटरो का जवाब (केवल उनका उपयोग नहीं करने वाला) वोट गणना पर आगे है, इसलिए हर कोई सहमत है।
14

1
ठीक है, पहले इस तरह की समस्याओं को हल करने के लिए (यह भी एसओ पर एक समान कार्य में हुआ था) आप सैंडबॉक्स या पहेली प्रयोगशाला का उपयोग कर सकते हैं ;-)
जॉय

1
कैसे थोप कि इस कार्यक्रम के एक मुरजबंध संबंधी Quine ही होना चाहिए के बारे में बुराई मुस्कराहट ;-)
विलक्षण

4
मुझे पता है कि यह एक पुराना सवाल है, लेकिन मुझे लगता है कि इसे एक मनमाने ढंग से जीतने वाली कसौटी चाहिए, जैसे लोकप्रियता प्रतियोगिता या कोड-गोल्फ। प्रश्न कोई नहीं निर्दिष्ट करता है।
mbomb007

जवाबों:


34

माणिक

z=gets;puts *z.reverse==z&&1||0||1&&z==esrever.z* stup;steg=z

प्रिंट 1 यदि इनपुट एक पैलिंड्रोम है, तो यदि यह नहीं है। बिना लाइनब्रेक के इनपुट।

किसी भी टिप्पणी का उपयोग नहीं करता है, इसके बजाय यह 2 चाल का उपयोग करता है:

  • लघु-परिच्छेद: 0रूबी में सत्य-ईश (केवल nilऔर falseअसत्य का मूल्यांकन) है, इसलिए 1&&z==esrever.z* stupइसका मूल्यांकन नहीं किया जाता है और इस प्रकार एक रनटाइम अपवाद नहीं उठाया जा सकता है
  • फास्फेट / गुणा संचालक ( *): एक सिंटैक्स त्रुटि से बचने के लिए z=esrever.z stup, हम पार्सर को पार्स करने के लिए मजबूर करते हैं जैसे z=esrever.z()*stupकि ए *। दूसरी तरफ, *एक स्पैट ऑपरेटर के रूप में पार्स किया जाता है, जो फ़ंक्शन कॉल में मापदंडों की एक श्रृंखला में एक सरणी को विभाजित करता है। यदि किसी सरणी के बजाय केवल एक तत्व है, तो यह मूल रूप से कुछ भी नहीं करता है, इसलिए puts *fooयह बराबर है puts foo

टिप्पणियों का उपयोग करके स्पष्ट समाधान (प्रिंट सही / गलत):

puts gets.reverse==$_#_$==esrever.steg stup

क्या आप बता सकते हैं कि यह कैसे काम करता है। मैं माणिक नहीं जानता।
मेलमोकब

@ ममलमोक: मैंने एक छोटा स्पष्टीकरण जोड़ा। मुझे बताएं कि क्या यह अभी भी स्पष्ट नहीं है।
वेंटरो

26

बिना टिप्पणी के अजगर

"a\";w=]1-::[w trinp;)(tupni_war=w;";w=raw_input();print w[::-1]==w;"\a"

मुझे आश्चर्य है कि किसी को भी यह चाल अभी तक नहीं मिली, इसे ज्यादातर भाषाओं में काम करना चाहिए!


2
बहुत चालाक, मुझे भागने वाला उद्धरण पसंद है।
वेन वर्नर

अच्छा समाधान, आप printकथन को छोड़ भी सकते हैं और यदि आप उद्धरण में निर्दिष्ट निर्दिष्ट इनपुट की अनुमति देते हैं तो raw_input()इसे छोटा किया जा सकता है input()। शुरुआत में एक अतिरिक्त '=' गुम।
विलेम

ट्रू या फाल्स के बाद ट्रेलिंग आउटपुट को हटा दिया गया:"a\"#;w==]1-::[w;)(tupni_war=w;";w=raw_input();w[::-1]==w;#"\a"
विलेम

13

पर्ल

perl -nle "$s=$_ eq+reverse;print$s;s$tnirp;esrever+qe _$=s$"

कोई टिप्पणी नहीं, बस चालाकी से प्रतिस्थापन संचालक को गाली देते हुए (हे, पर्ल चर एक $ के साथ शुरू होता है, तो क्या)?


7

पायथन 2.7

s=raw_input();print'YNEOS'[s!=s[::-1]::2]#]2::]1-::[s=!s['SOENY'tnirp;)(tupni_war=s

6

सी

#include <stdio.h>                   //
#include <string.h>                  //
int main() {                         //
  char str[1024];                    //
  fgets(str, sizeof(str), stdin);    //
  int i = 0, j = strlen(str) - 2;    //
  for (; i < j; i++, j--)            //
    if (str[i] != str[j]) {          //
      printf("no\n");                //
      return 0;                      //
    }                                //
  printf("yes\n");                   //
}                                    //
//                                    }
//                   ;)"n\sey"(ftnirp  
//                                }    
//                      ;0 nruter      
//                ;)"n\on"(ftnirp      
//          { )]j[rts =! ]i[rts( fi    
//            )--j ,++i ;j < i ;( rof  
//    ;2 - )rts(nelrts = j ,0 = i tni  
//    ;)nidts ,)rts(foezis ,rts(stegf  
//                    ;]4201[rts rahc  
//                         { )(niam tni
//                  >h.gnirts< edulcni#
//                   >h.oidts< edulcni#

चल रहा उदाहरण:

$ gcc -std=c99 c.c && ./a.out 
blahalb
yes

संक्षिप्तता के लिए नहीं जीतेंगे, लेकिन मैं प्रभावित हूं
वेन वर्नर

योग्य, चतुर- lvl ११/१०
nymo

5

Golfscript

.-1%=#=%1-.
  • सिर्फ कमेंट ट्रिक के साथ
  • अंत में बिना \ n इनपुट
  • चार (विराम चिह्न के लिए भी) मिलान मिलान करें
  • वापसी में सफलता के लिए 1, नाकामी के लिए 0

4

पीएचपी

echo strrev($z)==$z;#;z$==)z$(verrts ohce

तथ्य:

  • $z जाँच करने के लिए स्ट्रिंग, इनपुट स्ट्रिंग
  • $tबुलियन, TRUE अगर इनपुट स्ट्रिंग $zपैलिंड्रोम है, तो FALSE अन्यथा
  • टिप्पणियों का उपयोग करके मुझे कोड पैलिंड्रोम बनाने में मदद मिलेगी।
  • आउटपुट $t
  • स्रोत ही एक ताल है

PHP में palindromic palindrome चेकर को लागू करना संभव नहीं होगा इसका कारण यह है क्योंकि PHP चर को a से शुरू करने का नाम दिया गया है $। आप $PHP में किसी पहचानकर्ता के नाम को समाप्त नहीं कर सकते ।


2

पीएचपी

<?php eval/*/*/(';{$i=fgets(STDIN,2e9);};{$a="strrev";}{var_dump("{$i}"=="{$a($i)}");}/*}{*\{;("{(tupni$)a$}"=="{putni$}")ohce}{;"verrts"==a$};{;(9e2,NIDTS)stegf=i$);');/*\*\eval php?>

$तकनीकी रूप से समस्या से बचने के लिए कुछ अजीब ट्रिक्स का उपयोग करता है , क्योंकि मैं ;अंत में एक चुपके करना चाहता था ।

 <?php $i = fgets(STDIN,2e9); echo $i == strrev($i);/*\;(i$)verrts == i$ ohce ;(9e2, NIDTS)stegf = $i php?>

यह एक काम करने वाला है जो PHP की /* */टिप्पणियों और इस तथ्य का उपयोग करता है कि आपको उनके लिए अंत की आवश्यकता नहीं है।


2
अंत में पहला कोड evalहोना चाहिए lave
अय्यन येति

1

CoffeeScript

मैं वास्तव में 'स्प्लिट', 'रिवर्स' और 'जॉइन': 'के रिवर्स स्पेलिंग से जूझ रहा था।

p=(s)->s.split('').reverse().join('')==s#s==)''(nioj.)(esrever.)''(tilps.s>-)s(=p


1

पायथन 3, 55 बाइट्स

एक टिप्पणी का उपयोग करता है, लेकिन अन्य पायथन की तुलना में कम है जो टिप्पणियों का उपयोग करता है।

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

1

फजी ऑक्टो गुआकामोल , 17 बाइट्स

^Cz.=i_;@;_i=.zC^

यह बिल्कुल निश्चित नहीं है कि जीत कैसे परिभाषित की जाती है, लेकिन मैंने बाइट की गिनती ऊपर रखी है।

^ इनपुट मिलता है और इसे पहले स्टैक पर धकेलता है।

C पहले स्टैक को दूसरे में कॉपी करता है।

z स्टैक के शीर्ष को उल्टा करें, इसलिए "जैसे" "सा" बन जाता है।

. सक्रिय स्टैक को स्थानांतरित करता है, इसलिए सक्रिय स्टैक में इनपुट होता है, और निष्क्रिय में उलटा इनपुट होता है।

=समानता के लिए जाँच, समानता के लिए लौट 0रहा है।

iToSts को बदल देता है, इसलिए ऐसा 0हो जाता है 1, और कुछ भी बहुत अधिक हो जाता है False

_पॉप और अस्थायी चर सेट करता है जो ;तत्कालीन प्रिंट करता है।

@कार्यक्रम को मैन्युअल रूप से समाप्त करता है, इसलिए यह उलटे हिस्से को नहीं मारता है। यह पैलिंड्रोम बनाता है।


0

जावास्क्रिप्ट

function a(b){return b==b.split('').reverse().join('')}//})''(nioj.)(esrever.)''(tilps.b==b nruter{)b(a noitcnuf

बिना कमेंट्स के करना मुश्किल ...

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