पृष्ठभूमि
मैं वर्तमान में AP Comp Sci A: Java वर्ग में हूं, और मैं अपने कुछ दोस्तों को कोड गोल्फिंग पर शुरू करना चाहता हूं। मेरे पास पाठ्यक्रम से एक चुनौती है, और मैं यह देखना चाहूंगा कि समुदाय इस चुनौती को कितने बाइट्स में कर सकता है।
चुनौती का विवरण:
दो इनपुट स्ट्रिंग्स, मुख्य स्ट्रिंग और पिवट स्ट्रिंग को देखते हुए, निम्न कार्य करें:
यदि पिवट स्ट्रिंग मुख्य स्ट्रिंग के विकल्प के रूप में एक बार होती है, तो मुख्य स्ट्रिंग का हिस्सा जो पिवट स्ट्रिंग से पहले आता है उसे उस भाग के साथ स्वैप किया जाएगा, जबकि ऑर्डर को संरक्षित करते हुए कहा गया कि सबट्रेप को स्वैप किया जा रहा है ।
उदाहरण के लिए:
यदि पिवट स्ट्रिंग खाली है या पिवट स्ट्रिंग मुख्य स्ट्रिंग के भीतर नहीं पाई जाती है, तो प्रोग्राम को परिभाषित व्यवहार नहीं करना पड़ता है।
यदि पिवट स्ट्रिंग के एक से अधिक उदाहरण हैं, तो विभाजन पिवट के पहले और केवल पहले उदाहरण में होना चाहिए ।
उदाहरण: मुख्य स्ट्रिंग OneTwoThreeTwoOne
और धुरी स्ट्रिंग को देखते हुए Two
, आउटपुट होना चाहिए ThreeTwoOneTwoOne
।
मुख्य स्ट्रिंग 1Two2Two3Two4
और धुरी को देखते हुए Two
, आउटपुट होना चाहिए 2Two3Two4Two1
।
मुख्य स्ट्रिंग OneTwoThree
और धुरी स्ट्रिंग "दो" को देखते हुए , आउटपुट होना चाहिए ThreeTwoOne
। मुख्य स्ट्रिंग the rabbit is faster than the turtle
और धुरी स्ट्रिंग को देखते हुए
is faster than
(एकल स्थान अनुगामी और पूर्ववर्ती पर ध्यान दें), आउटपुट होना चाहिए the turtle is faster than the rabbit
।
मुख्य स्ट्रिंग 1-2-3-4-5-6
और धुरी को देखते हुए -
, आउटपुट होना चाहिए 2-3-4-5-6-1
।
उपसंहार:
कोड गोल्फ पर यह मेरा पहला प्रश्न है, इसलिए यदि आपके पास कोई सुझाव या रचनात्मक आलोचना है, तो ऐसा कहने के लिए स्वतंत्र महसूस करें।
इसके अतिरिक्त, इस परियोजना के लिए मेरा कोड (जावा में लिखा गया है क्योंकि पाठ्यक्रम उस पर केंद्रित है) नीचे पाया जा सकता है। यदि आपके पास कोई सुझाव है, तो मैं उन्हें देखना पसंद करूंगा। इसके वर्तमान में 363 बाइट्स हैं, लेकिन मुझे यकीन है कि आप लोग बेहतर और छोटे समाधानों के साथ आ सकते हैं।
import java.util.Scanner;interface Main{static<T>void D(T f){System.out.println(f);}static void main(String[]A){Scanner s=new Scanner(System.in);D("Enter the first String:");String a=s.nextLine();D("Enter the pivot String:");String p=s.nextLine();if(p.isEmpty()|!a.contains(p)){D("Error: Pivot String not found.");return;}String w[]=a.split(p,2);D(w[1]+p+w[0]);}}
नोट: इनपुट के लिए पाठ और उस स्थिति के लिए जिसे पिवट स्ट्रिंग नहीं मिली है, मूल असाइनमेंट के लिए अनिवार्य है, लेकिन इस चुनौती के लिए नहीं।
2-3-4-5-6-1
।
pivot='-'
और के लिए अपेक्षित आउटपुट क्या हैmain='1-2-3-4-5-6'
? इसके लिए अधिकांश सबमिशन आउटपुट2-3-4-5-6-1
, लेकिन जैसा कि मैं समझता हूं कि यह चुनौती होनी चाहिए2-1-3-4-5-6
।