ধরুন আমাদের দুটি স্ট্রিং 'a' এবং 'b' আছে, কাজটি হল আমরা স্ট্রিং 'a' কে ঠিক 2টি জায়গায় ঘড়ির কাঁটার বিপরীত দিকে বা ঘড়ির কাঁটার দিকে ঘুরিয়ে স্ট্রিং 'b' পেতে পারি কিনা তা খুঁজে বের করা। উদাহরণস্বরূপ,
ইনপুট-1 −
a = google b = legoog
আউটপুট −
True
ব্যাখ্যা − স্ট্রিং 'গুগল'কে দুটি জায়গায় ঘোরানো যায় কাঁটার বিপরীত দিকে, যার ফলে স্ট্রিং 'লেগুগ' হয়। সুতরাং, আমরা সত্য ফিরে.
ইনপুট-2 −
a = tuorialst b = tutorials
আউটপুট −
False
ব্যাখ্যা − স্ট্রিং 'টিউটোরিয়াল' অন্য একটি স্ট্রিং 'টিউটোরিয়াল' পেতে দুটি স্থান দ্বারা কোনো দিক দিয়ে ঘোরানো যাবে না। এইভাবে, আমরা মিথ্যা ফেরত দিই।
এই সমস্যা সমাধানের জন্য ব্যবহৃত পদ্ধতি
প্রদত্ত দুটি স্ট্রিংয়ের জন্য, আমাদের এই পদ্ধতিতে দুটি ক্ষেত্রে রয়েছে -
-
কাঁটার বিপরীত দিকে ঘূর্ণনের জন্য
-
ঘড়ির কাঁটার দিকে ঘূর্ণনের জন্য।
প্রথমত, যদি উভয় স্ট্রিং এর দৈর্ঘ্য ভিন্ন হয়, তাহলে মিথ্যা রিটার্ন করুন; অন্যথায়, যদি উভয় স্ট্রিং এর দৈর্ঘ্য '2' এর থেকে কম বা সমান হয়, তাহলে আমরা True ফেরত দেব।
অন্যান্য ক্ষেত্রে, স্ট্রিং ‘b’-এর একটি সাবস্ট্রিং দুইটি জায়গায় ঘোরার মাধ্যমে ক্লকওয়াইজে স্ট্রিং ‘a’-এর সমান হয় কিনা তা পরীক্ষা করে দেখব, তারপর আমরা True ফিরব। অন্যথায়, মিথ্যা।
একইভাবে, যদি স্ট্রিং ‘b’ ঘড়ির কাঁটার দিকে ঘোরানোর ফলে এটি স্ট্রিং ‘a’-এর সমান হয়ে যায়, তাহলে ট্রু রিটার্ন করুন, অন্যথায়, আমরা মিথ্যা ফেরত দেব।
-
দুটি ইনপুট স্ট্রিং 'a' এবং 'b'
নিন -
একটি বুলিয়ান ফাংশন চেকরোটেড (স্ট্রিং a, স্ট্রিং b) দুটি স্ট্রিং 'a' এবং স্ট্রিং 'b' নেয় এবং স্ট্রিং 'b' কে ঘড়ির কাঁটার বিপরীত দিকে বা ঘড়ির কাঁটার দিকে ঘুরিয়ে সমান হলে ফেরত দেয়।
-
স্ট্রিং 'a' এবং স্ট্রিং 'b' এর দৈর্ঘ্য পরীক্ষা করুন।
-
স্ট্রিং ‘b’-এর সাবস্ট্রিং খুঁজে বের করুন কাঁটার বিপরীত দিকে দুটি স্থানে ঘোরানোর মাধ্যমে।
-
এখন ফলাফলের সাবস্ট্রিংটি স্ট্রিং 'a'-এর সমান কিনা তা পরীক্ষা করুন এবং সমান হলে সত্যে ফিরে আসুন।
-
ঘড়ির কাঁটার দিকে দুই জায়গায় ঘোরার মাধ্যমে স্ট্রিং ‘b’-এর সাবস্ট্রিং খুঁজুন।
-
এখন ফলাফলের সাবস্ট্রিংটি স্ট্রিং 'a'-এর সমান কিনা তা পরীক্ষা করুন এবং সমান হলে সত্যে ফিরে আসুন।
-
যদি স্ট্রিং সমান না হয়, তাহলে মিথ্যা ফেরত দিন।
উদাহরণ
public class Solution{ static boolean checkRotated(String str1, String str2){ String s1=""; String s2=""; int len= str2.length(); if (str1.length() != str2.length()) return false; s1= str2.substring(len-2, len)+ str2.substring(0,len-2); s2= str2.substring(0,2) + str2.substring(0,2); return (str1.equals(s1) || str1.equals(s2)); } public static void main(String[] args){ String s1= "google"; String s2= "legoog"; System.out.println(checkRotated(s1,s2) ? "True":"False"); } }
আউটপুট
যদি আমরা উপরের কোডটি চালাই, তাহলে এটি আউটপুটটি
হিসাবে প্রিন্ট করবেFalse
যেহেতু উপরের কোডের আউটপুট "True" তাই এটি 'True' প্রিন্ট করবে।