ভিডিওতে দেখো — YouTube @algonur_com
কোড
Python
def isPalindrome(s: str) -> bool:
l, r = 0, len(s) - 1
while l < r:
while l < r and not s[l].isalnum(): l += 1
while l < r and not s[r].isalnum(): r -= 1
if s[l].lower() != s[r].lower(): return False
l, r = l + 1, r - 1
return TrueJava
public boolean isPalindrome(String s) {
int l = 0, r = s.length() - 1;
while (l < r) {
while (l < r && !Character.isLetterOrDigit(s.charAt(l))) l++;
while (l < r && !Character.isLetterOrDigit(s.charAt(r))) r--;
if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))) return false;
l++; r--;
}
return true;
}Kotlin
fun isPalindrome(s: String): Boolean {
var l = 0; var r = s.length - 1
while (l < r) {
while (l < r && !s[l].isLetterOrDigit()) l++
while (l < r && !s[r].isLetterOrDigit()) r--
if (s[l].lowercaseChar() != s[r].lowercaseChar()) return false
l++; r--
}
return true
}C++
bool isPalindrome(string s) {
int l = 0, r = s.size() - 1;
while (l < r) {
while (l < r && !isalnum(s[l])) l++;
while (l < r && !isalnum(s[r])) r--;
if (tolower(s[l]) != tolower(s[r])) return false;
l++; r--;
}
return true;
}C
#include <ctype.h>
bool isPalindrome(char* s) {
int l = 0, r = strlen(s) - 1;
while (l < r) {
while (l < r && !isalnum(s[l])) l++;
while (l < r && !isalnum(s[r])) r--;
if (tolower(s[l]) != tolower(s[r])) return false;
l++; r--;
}
return true;
}জটিলতা
O(n)
সময় — অ্যারেটা একবারই ঘুরি, ম্যাপে খোঁজা O(1)।
O(1)
জায়গা — সবচেয়ে খারাপ ক্ষেত্রে সব সংখ্যা ম্যাপে থাকে।
আগের সমস্যা← Longest Consecutive Sequenceপরের সমস্যাTwo Sum II - Input Array Is Sorted →