পটভূমি
আমি বর্তমানে একটি এপি কম্প সায়েন্স এ: জাভা ক্লাসে রয়েছি, এবং আমি কোড গল্ফিংয়ে আমার কিছু বন্ধুদের শুরু করতে চাই। কোর্সটি থেকে আমার একটি চ্যালেঞ্জ রয়েছে এবং আমি দেখতে চাই সম্প্রদায়ের মধ্যে কতগুলি বাইট এই চ্যালেঞ্জটি করতে পারে।
চ্যালেঞ্জের বিশদ:
দুটি ইনপুট স্ট্রিং দেওয়া হয়েছে, মূল স্ট্রিং এবং পিভট স্ট্রিং, নিম্নলিখিতটি করুন:
যদি পাইভট স্ট্রিংটি একবার মূল স্ট্রিংয়ের একটি স্ট্রিং হিসাবে হয় তবে মূল স্ট্রিংয়ের যে অংশটি পাইভট স্ট্রিংয়ের আগে আসে তার পরে যে অংশটি আসে তার সাথে অদলবদল করা হবে, যখন সাবট্রিংগুলি অদলবদলের অভ্যন্তরে ক্রম সংরক্ষণ করে ।
উদাহরণ স্বরূপ:
পিভট স্ট্রিংটি ফাঁকা থাকলে বা মূল স্ট্রিংয়ের মধ্যে পিভট স্ট্রিংটি পাওয়া যায় না , তবে প্রোগ্রামটি সংজ্ঞায়িত আচরণ করতে হবে না।
পিভট স্ট্রিংয়ের একাধিক উদাহরণ থাকলে, বিভাজনটি প্রথম এবং কেবলমাত্র হওয়া উচিত প্রথম উদাহরণে ।
উদাহরণ: প্রধান স্ট্রিং 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
।
উত্তরভাষ:
কোড গল্ফের বিষয়ে এটি আমার প্রথম প্রশ্ন, সুতরাং আপনার যদি পরামর্শ বা গঠনমূলক সমালোচনা থাকে, তবে নির্দ্বিধায় এটি বলতে দ্বিধা করুন।
অতিরিক্তভাবে, এই প্রকল্পের জন্য আমার কোড (জাভাতে লিখিত কারণ কোর্সটি এতে ফোকাস করে) নীচে পাওয়া যাবে। আপনার যদি কোনও টিপস থাকে তবে আমি সেগুলি দেখতে পছন্দ করব। এটি বর্তমানে ৩3৩ বাইট, তবে আমি বাজি ধরছি আপনি ছেলেরা আরও ভাল এবং ছোট সমাধান নিয়ে আসতে পারেন।
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
।