# Check if String formed by first and last X characters of a String is a Palindrome

• Last Updated : 08 Jul, 2021

Given a string str and an integer X. The task is to find whether the first X characters of both string str and reversed string str are same or not. If it is equal then print true, otherwise print false.

Examples:

Input: str = abcdefba, X = 2
Output: true
Explanation
First 2 characters of both string str and reversed string str are same.

Input: str = GeeksforGeeks, X = 3
Output: false

Approach: This problem can be solved by iterating over the characters of the string str. Follow the steps below to solve this problem:

• Initialize two variables say, i as 0 and n as length of str to store position of current character and length of the string str respectively.
• Iterate while i less than n and x:
• If ith character from starting and ith from the last are not equal, then print false and return.
• After completing the above steps, print true as the answer.

Below is the implementation of the above approach :

## C++

 `// C++ implementation for the above approach``#include ``using` `namespace` `std;` `// Function to check whether the first``// x characters of both string str and``// reversed string str are same or not``void` `isEqualSubstring(string str, ``int` `x)``{``    ``// Length of the string str``    ``int` `n = str.length();``    ``int` `i = 0;` `    ``// Traverse over the string while``    ``// first and last x characters are``    ``// not equal``    ``while` `(i < n && i < x) {` `        ``// If the current and n-k-1 from last``        ``// character are not equal``        ``if` `(str[i] != str[n - i - 1]) {``            ``cout << ``"false"``;``            ``return``;``        ``}``        ``i++;``    ``}` `    ``// Finally, print true``    ``cout << ``"true"``;``}` `// Driver Code``int` `main()``{``    ``// Given Input``    ``string str = ``"GeeksforGeeks"``;``    ``int` `x = 3;` `    ``// Function Call``    ``isEqualSubstring(str, x);``}`

## Java

 `// Java program for the above approach` `import` `java.io.*;` `class` `GFG {``    ``// Function to check whether the first``    ``// x characters of both string str and``    ``// reversed string str are same or not``    ``public` `static` `void` `isEqualSubstring(String str, ``int` `x)``    ``{``        ``// Length of the string str``        ``int` `n = str.length();``        ``int` `i = ``0``;` `        ``// Traverse over the string while``        ``// first and last x characters are``        ``// not equal``        ``while` `(i < n && i < x) {` `            ``// If the current and n-k-1 from last``            ``// character are not equal``            ``if` `(str.charAt(i) != str.charAt(n - i - ``1``)) {``                ``System.out.println(``"false"``);``                ``return``;``            ``}``            ``i++;``        ``}` `        ``// Finally, print true``        ``System.out.println(``"true"``);``    ``}` `    ``// Driver Code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``// Given Input``        ``String str = ``"GeeksforGeeks"``;``        ``int` `x = ``3``;` `        ``// Function Call``        ``isEqualSubstring(str, x);``    ``}``}`

## Python3

 `# Python3 program for the above approach` `# Function to check whether the first``# x characters of both string str and``# reversed string str are same or not``def` `isEqualSubstring(string, x):``  ` `    ``# Length of the string str``    ``n ``=` `len``(string)``    ``i ``=` `0``    ` `    ``# Traverse over the string while``    ``# first and last x characters are``    ``# not equal``    ``while` `i < n ``and` `i < x:``        ` `        ``# If the current and n-k-1 from last``        ``# character are not equal``        ``if` `(string[i] !``=` `string[n``-``i``-``1``]):``            ``print``(``"false"``)``            ``return``        ` `        ``i ``+``=` `1``        ` `    ``# Finally, print true``    ``print``(``"true"``)``    ``return` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ` `    ``# Given input``    ``string ``=` `"GeeksforGeeks"``    ``x ``=` `3` `    ``# Function Call``    ``isEqualSubstring(string, x)` `# This code is contributed by MuskanKalra1`

## C#

 `// C# implementation for the above approach``using` `System;``using` `System.Collections.Generic;` `class` `GFG{` `// Function to check whether the first``// x characters of both string str and``// reversed string str are same or not``static` `void` `isEqualSubstring(``string` `str, ``int` `x)``{``  ` `    ``// Length of the string str``    ``int` `n = str.Length;``    ``int` `i = 0;` `    ``// Traverse over the string while``    ``// first and last x characters are``    ``// not equal``    ``while` `(i < n && i < x) {` `        ``// If the current and n-k-1 from last``        ``// character are not equal``        ``if` `(str[i] != str[n - i - 1]) {``            ``Console.Write(``"false"``);``            ``return``;``        ``}``        ``i++;``    ``}` `    ``// Finally, print true``    ``Console.Write(``"true"``);``}` `// Driver Code``public` `static` `void` `Main()``{``  ` `    ``// Given Input``    ``string` `str = ``"GeeksforGeeks"``;``    ``int` `x = 3;` `    ``// Function Call``    ``isEqualSubstring(str, x);``}``}` `// This code is contributed by ipg2016107.`

## Javascript

 ``

Output

`false`

Time complexity: O(min(n, k))
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up