Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 08 / task3.cpp
diff options
context:
space:
mode:
Commit7881119e0914b9207568918fcf868eea84ef3d78 (patch)
Author
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-28 01:45:44 +0200
Committer
 Angeld55 <angel_dimitriev@abv.bg>
2020-11-28 01:45:44 +0200
Filesab70701506971ec44b9aab9ba00ad9525b8da0e5 /Sem. 08/task3.cpp
Introduction_to_programming_FMI-7881119e0914b9207568918fcf868eea84ef3d78.tar
Introduction_to_programming_FMI-7881119e0914b9207568918fcf868eea84ef3d78.tar.gz
Introduction_to_programming_FMI-7881119e0914b9207568918fcf868eea84ef3d78.zip
Parente5646c51794632f5816c00f4d1e7933ea7dcbbc0 (diff)
sem 8
1 files changed, 49 insertions, 0 deletions
-rw-r--r--Sem. 08/task3.cpp49
diff --git a/Sem. 08/task3.cpp b/Sem. 08/task3.cpp
new file mode 100644
index 0000000..6d7d209
--- /dev/null
+++ b/Sem. 08/task3.cpp
@@ -0,0 +1,49 @@
+#include <iostream>
+using namespace std;
+
+const int SIZE = 30;
+bool isSubarrayPalindrome(int arr[SIZE], int startIndex, int endIndex)
+{
+ while (startIndex < endIndex)
+ {
+ if (arr[startIndex] != arr[endIndex])
+ return false;
+ startIndex++;
+ endIndex--;
+ }
+ return true;
+}
+void print(int arr[SIZE])
+{
+ for (int i = 0; i < SIZE; i++)
+ cout << arr[i];
+ cout << endl;
+}
+
+int LongestPalindromicSubarray(int arr[SIZE], int n)
+{
+ int currentSize = n;
+
+ int startIndex = 0;
+ int endIndex = startIndex + currentSize-1;
+ while (true)
+ {
+ if (isSubarrayPalindrome(arr, startIndex, endIndex))
+ return endIndex - startIndex + 1;
+ startIndex++;
+ endIndex++;
+ if (endIndex == n)//last iteration
+ {
+ currentSize--;
+ startIndex = 0;
+ endIndex = startIndex + currentSize - 1;
+ }
+ }
+}
+int main()
+{
+
+ int arr[SIZE] = {1,4,3,2,3};
+ cout << LongestPalindromicSubarray(arr, 5);
+
+}