(116). 30.4. SUBARRAY WITH PALINDROMIC CONCATENATION. - anishsingh90/Data_Structure_And_Algorithm_In_Cpp_github.io GitHub Wiki
#include <bits/stdc++.h> using namespace std;
bool isPalindrome(int n) { int temp = n, number = 0;
while (temp > 0) {
number = number * 10 + temp % 10;
temp = temp / 10;
}
return (number == n);
}
int findPalindromicSubarray(vector arr, int k) { int num = 0;
for (int i = 0; i < k; i++) {
num = num * 10 + arr[i];
}
if (isPalindrome(num)) {
return 0;
}
for (int j = k; j < arr.size(); j++) {
num = (num % (int)pow(10, k - 1)) * 10 + arr[j];
if (isPalindrome(num)) {
return j - k + 1;
}
}
return -1;
}
int main() { vector arr = {2, 3, 5, 1, 1, 5}; int k = 4;
int ans = findPalindromicSubarray(arr, k);
if (ans == -1) {
cout << "Palindromic subarray doesn't exist" << endl;
} else {
for (int i = ans; i < ans + k; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
return 0;
}
/* OUTPUT: 5 1 1 5 */