ट्रैक
/
Pharo
Pharo
/
अभ्यास
/
स्ट्रिंग को उलटिए
स्ट्रिंग को उलटिए

स्ट्रिंग को उलटिए

आसान

परिचय

स्ट्रिंग को उलटने का मतलब है उसे दाएँ से बाएँ पढ़ना, बाएँ से दाएँ नहीं। प्रोग्रामिंग में यह काम आश्चर्यजनक रूप से बहुत आम है।

उदाहरण के लिए, बायोइन्फॉर्मेटिक्स में DNA या RNA स्ट्रिंग के अनुक्रम को उलटना कई तरह के विश्लेषणों के लिए अक्सर महत्वपूर्ण होता है। जैसे, पूरक शृंखलाएँ ढूँढना, या ऐसे पैलिंड्रोमिक अनुक्रम पहचानना जिनका जैविक महत्व होता है।

निर्देश

आपको दी गई स्ट्रिंग को उलटना है।

कुछ उदाहरण:

  • "stressed" को "desserts" में बदलिए।
  • "strops" को "sports" में बदलिए।
  • "racecar" को "racecar" में बदलिए।

हालाँकि स्ट्रिंग के लिए #reversed और #reverseDo: मेथड मौजूद हैं, लेकिन क्या आप खुद पता लगा सकते हैं कि निचले स्तर पर अक्षरों के इटरेशन और स्ट्रीम की मदद से यह काम कैसे किया जाए?

कोड ब्राउज़ करने में मदद के लिए Pharo में एक बढ़िया कोड फाइंडर टूल है। इसे चालू करने के लिए Shift-Enter दबाइए।

ध्यान दें: हमने हल को ReverseString कहने की Exercism की परंपरा का पालन किया है, हालाँकि Smalltalk में इसके लिए ज़्यादा उपयुक्त नाम StringReverser होगा।

Smalltalk और स्ट्रिंग

स्ट्रिंग के बारे में कुछ साफ़-साफ़ छोटी बातें हैं, जैसे कमेंट के लिए डबल कोट, स्ट्रिंग के लिए सिंगल कोट, और अक्षरों के लिए खास सिंटैक्स (जैसे अक्षर “x” के लिए $x)। पहली बार पढ़ते समय ये आपको उलझा सकती हैं, क्योंकि ये परंपराएँ दूसरी भाषाओं में इस्तेमाल होने वाली परंपराओं से अलग हैं।

सिंबल की एक धारणा भी है, जो ऐसी स्ट्रिंग होती है जो पूरी मेमोरी में अनोखी होती है; यानी जब इसे बनाया जाता है (आम तौर पर कंपाइल-टाइम पर), तो मेमोरी में खोज की जाती है यह देखने के लिए कि इसके जैसा कोई और पहले से मौजूद है या नहीं; और सिर्फ मूल वाला ही इस्तेमाल होता है। इसका कारण सिर्फ मेमोरी बचाना नहीं है, बल्कि सिंबल की तुलना करते समय मिलने वाली काफी तेज़ी भी है।

"this is a comment"
'this is a string'
#'this is a symbol'
#thisIsASymbolToo

Smalltalk प्रोग्राम में कॉमा बहुत कम मिलते हैं, क्योंकि सिंटैक्स में उनकी कोई भूमिका नहीं होती। इसीलिए ऐरे लिटरल, मिसाल के तौर पर, बिना कॉमा के लिखे जाते हैं; जैसे #(1 2 3 4 5) हालाँकि, कॉमा अपने आप में एक ऑपरेटर है, और दो स्ट्रिंग जोड़ते समय आपको यह दिखेगा; जैसे 'string1', 'string2'

अंत में, यह जानना ज़रूरी है कि स्ट्रिंग और अक्षर अलग-अलग क्लास हैं। एक स्ट्रिंग, अक्षरों का संग्रह होती है। स्ट्रिंग पर इटरेशन करते समय यह आपको चौंका सकता है, क्योंकि हो सकता है आप ऐसे मेथड को अक्षर दे दें जो स्ट्रिंग की अपेक्षा करता हो। इसे देखिए...

(('hello' at: 2) = $e) inspect.
(('hello' at: 2) = 'e') inspect.

Smalltalk और स्ट्रीम

स्ट्रीम क्रम से पढ़ने और लिखने के लिए काम की होती हैं। ये इंडेक्स बढ़ाने की ज़रूरत से बचाकर कोड को साफ़-सुथरा बनाती हैं। स्ट्रीम किसी भी संग्रह पर काम करती हैं।

stream := WriteStream on: String new.
stream nextPut: $h ; nextPutAll: 'ell' ; nextPut: $o.
stream contents inspect
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Pharo Exercism

स्ट्रिंग को उलटिए शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Pharo को 50 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

स्ट्रिंग को उलटिए को गहराई से जानिए!

स्ट्रिंग उलटने के 14 अलग-अलग तरीके जानिए। इसमें Unicode कोडपॉइंट, ग्राफीम, स्टैक बनाम हीप एलोकेशन और पॉइंटर जैसे कई विषय शामिल हैं। आराम से बैठिए और Jeremy और Erik के साथ 45 मिनट सीखने का मज़ा लीजिए।