Related Articles

# 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)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up