একটা ফাংশন লিখতে হবে যেখানে ইনপুট হিসাবে নন-এম্পটি স্ট্রিং দেয়া হবে, আউটপুট হিসাবে একটা বুলিয়ান ভ্যালু রিটার্ন দিবে হবে। যদি ইনপুট স্ট্রিং প্যালিন্ড্রম হয় তাহলে True আর প্যালিন্ড্রম না হলে False রিটার্ন করবে।
প্যালিন্ড্রমহল এমন স্ট্রিং যেটা সামনের দিক থেকে পড়লে যা হয় উল্টা দিক থেকে পড়লেও একই হবে। মনে রাখা ভালো যে, যেকোনো সিঙ্গেল অক্ষর একটা প্যালিন্ড্রম।
নমুনা ইনপুট
string = "abcdcba"
নমুনা আউটপুট
true
টুলস
- উভয় দিক থেকে এরে ট্রাভারসিং
টেকনিক
- স্ট্রিং কে ক্যারেক্টার এরে হিসাবে চিন্তা করতে হবে - স্ট্রিং এর startIndex এবং endIndex নিতে হবে
- while লুপ চালাতে হলে যতক্ষণ startIndex ছোট থাকে endIndex থেকে - startIndex এবং endIndex এর ক্যারাক্টার যদি একই না হয় তাহলে এটা প্যালিন্ড্রম হবে না
public class PalindromeCheck {
public static boolean isPalindrome(String str) {
int startIndex = 0;
int endIndex = str.length() - 1;
while (startIndex < endIndex) {
if(str.charAt(startIndex) != str.charAt(endIndex)) {
return false;
}
startIndex += 1;
endIndex += -1;
}
return true;
}
@Test
public void TestCase1() {
Assertions.assertTrue(isPalindrome("abcdcba"));
}
}