परीक्षण करने के लिए एक प्रोग्राम लिखें यदि एक स्ट्रिंग पैलिंड्रोमिक है, तो अतिरिक्त शर्त के साथ कि प्रोग्राम स्वयं पेलिंड्रोमिक हो।
परीक्षण करने के लिए एक प्रोग्राम लिखें यदि एक स्ट्रिंग पैलिंड्रोमिक है, तो अतिरिक्त शर्त के साथ कि प्रोग्राम स्वयं पेलिंड्रोमिक हो।
जवाबों:
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
बिना टिप्पणी के अजगर
"a\";w=]1-::[w trinp;)(tupni_war=w;";w=raw_input();print w[::-1]==w;"\a"
मुझे आश्चर्य है कि किसी को भी यह चाल अभी तक नहीं मिली, इसे ज्यादातर भाषाओं में काम करना चाहिए!
print
कथन को छोड़ भी सकते हैं और यदि आप उद्धरण में निर्दिष्ट निर्दिष्ट इनपुट की अनुमति देते हैं तो raw_input()
इसे छोटा किया जा सकता है input()
। शुरुआत में एक अतिरिक्त '=' गुम।
"a\"#;w==]1-::[w;)(tupni_war=w;";w=raw_input();w[::-1]==w;#"\a"
#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
echo strrev($z)==$z;#;z$==)z$(verrts ohce
तथ्य:
$z
जाँच करने के लिए स्ट्रिंग, इनपुट स्ट्रिंग$t
बुलियन, TRUE अगर इनपुट स्ट्रिंग $z
पैलिंड्रोम है, तो FALSE अन्यथा$t
PHP में palindromic palindrome चेकर को लागू करना संभव नहीं होगा इसका कारण यह है क्योंकि PHP चर को a से शुरू करने का नाम दिया गया है $
। आप $
PHP में किसी पहचानकर्ता के नाम को समाप्त नहीं कर सकते ।
<?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 की /* */
टिप्पणियों और इस तथ्य का उपयोग करता है कि आपको उनके लिए अंत की आवश्यकता नहीं है।
eval
होना चाहिए lave
।
^Cz.=i_;@;_i=.zC^
यह बिल्कुल निश्चित नहीं है कि जीत कैसे परिभाषित की जाती है, लेकिन मैंने बाइट की गिनती ऊपर रखी है।
^
इनपुट मिलता है और इसे पहले स्टैक पर धकेलता है।
C
पहले स्टैक को दूसरे में कॉपी करता है।
z
स्टैक के शीर्ष को उल्टा करें, इसलिए "जैसे" "सा" बन जाता है।
.
सक्रिय स्टैक को स्थानांतरित करता है, इसलिए सक्रिय स्टैक में इनपुट होता है, और निष्क्रिय में उलटा इनपुट होता है।
=
समानता के लिए जाँच, समानता के लिए लौट 0
रहा है।
i
ToSts को बदल देता है, इसलिए ऐसा 0
हो जाता है 1
, और कुछ भी बहुत अधिक हो जाता है False
।
_
पॉप और अस्थायी चर सेट करता है जो ;
तत्कालीन प्रिंट करता है।
@
कार्यक्रम को मैन्युअल रूप से समाप्त करता है, इसलिए यह उलटे हिस्से को नहीं मारता है। यह पैलिंड्रोम बनाता है।