Palindrome String

Learn via video course
FREE
View all courses
DSA Problem Solving for Interviews using Java
DSA Problem Solving for Interviews using Java
by Jitender Punia
1000
4.9
Start Learning
DSA Problem Solving for Interviews using Java
DSA Problem Solving for Interviews using Java
by Jitender Punia
1000
4.9
Start Learning
Topics Covered

A Palindrome string is a string which is equal to its reverse or we can say a string is palindrome if the reverse of the string is the same as the original one.

Properties of Palindrome String

A palindrome string is characterized by its symmetric structure, where the characters in the first half mirror those in the second half in reverse order. Additionally, any string of length 1 is inherently a palindrome.

How to identify a Palindrome?

To optimize the palindrome identification process, we can simplify the comparison by focusing on only half of the string. Here's a revised version of the steps:

  • Convert the string to lowercase or uppercase, depending on the case sensitivity requirement.
  • Define two pointers, one starting from the beginning of the string and the other from the end.
  • Iterate through the string until the pointers meet or cross each other.
  • At each step, compare the characters pointed to by the two pointers.
  • If they don't match, the string is not a palindrome; otherwise, continue until all pairs are checked.
  • If all pairs match, the string is a palindrome.

Problem Statement

Given a string s, we have to check whether the given string is palindrome or not.

A string is called as a palindrome string if the reverse of the given string is same as the original string.

Transform Your Career

Choose from our industry-leading programs designed for career success

NSDC Certified

Modern Software and AI Engineering Program

Master full-stack development with AI integration

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Modern Data Science and ML with specialisation in AI

Advanced data science techniques with AI specialization

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

Advanced AIML with Specialisation in Agentic AI

Deep dive into AIML with focus on Agentic systems

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

DevOps, Cloud & AI Platform Engineering

Build and manage AI-powered cloud infrastructure

12 MonthsDuration
AI-LedCurriculum
Career SupportSupport
GoogleAmazonPaytm+1000 more
Go to Program
NSDC Certified

AI Engineering Advanced Certification by IIT-Roorkee

Premier AI engineering certification from IIT-Roorkee

3 MonthsDuration
AI-LedCurriculum
Career SupportSupport
Program highlights
Go to Program

Example

Input:

Output:

Explanation: If we reverse the given string, it will be ABCBA which is equal to the original string. Hence, it is a palindrome string.

Input:

Output:

Explanation: If we reverse the given string, it will be DCBA which is not equal to the original string. Hence, it is not a palindrome string.

Constraints

1<=lengthofstring<=21051 <= length of string <= 2 * 10^5

Approach 1 - Using the Standard Method

In this approach, we will be following the below algorithm:

  • Make two indexes low and high respectively.
  • Initialize a flag variable as 0.
  • while low is not equal to high, check if s[low] is equal to s[high].
    • If s[low] is not equal to s[high], print "no" and make flag as 1.
    • In each iteration, increment the low index by 1 and decrease the high index by 1.
  • After the loop execution, check if the flag value is 0 or not, If its 0 that means that the string is palindrome and print "Yes".

Python Implementation

C++ Implementation

Java Implementation

Output:

Free Courses by top Scaler instructors
Python Course for Beginners With Certification: Mastering the Essentials
Java Course - Mastering the Fundamentals
DBMS Course - Master the Fundamentals and Advanced Concepts
JavaScript Course With Certification: Unlocking the Power of JavaScript
C++ Course: Learn the Essentials
Python and SQL for Data Science
Python Course for Beginners With Certification: Mastering the Essentials
Java Course - Mastering the Fundamentals
DBMS Course - Master the Fundamentals and Advanced Concepts
JavaScript Course With Certification: Unlocking the Power of JavaScript
C++ Course: Learn the Essentials
Python and SQL for Data Science

Complexity Analysis

Time Complexity: O(N) => As a single traversal is required, time complexity is O(N). Space Complexity: O(1) => No extra space is required in this operation.

Approach 2 - Using a Function

In this approach, we will be following the exactly same approach as the above one, the difference is just that we are putting the execution code in a separate function and then calling that function wherever we need.

Python Implementation

Scaler Placement Report and Statistics

₹23L
AVG CTC
SCALER PLACEMENT PROOF

Scaler learners achieved 2.5x salary growth with average post-Scaler CTC reaching ₹23L.

11,000+placements
650+companies
Verified data
Hiring Partners:
GoogleGoogleAmazonAmazonMicrosoftMicrosoftFlipkartFlipkartAdobeAdobe1200+ more

C++ implementation

Java implementation

Output:

Complexity Analysis

Time Complexity: O(N) => As a single traversal is required, time complexity is O(N). Space Complexity: O(1) => No extra space is required in this operation.

Approach 3 - Using Recursion

In this approach, we are checking the string using recursion by following the below algorithm:

  • Pass the string in the recursive function along with low and high pointers. Initial values of low and high are 0 and n-1 where n is the length of the string to be checked.
  • In the function, we need to check the characters at index pointed by low and high are equal or not.
  • In the recursive calls, pass the string by increasing the low index value by 1 and decreasing the high index value by 1.

Python Implementation

Turn Learning into Career Growth

1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary
1200+Hiring Partners
89%Placement Rate
11,000+Placements
147%Avg Salary Increment
2.5XCareer Growth
₹23 LPAAvg Post-Scaler Salary

C++ Implementation

Java Implementation

Output:

Complexity Analysis

Time Complexity: O(N) => As N/2 calls recursive calls are made, the time complexity is O(N). Space Complexity: O(1) => No extra space is required in this operation.

Approach 4 - Using String Library Functions

In this approach, we will be using a library function for reversing and then comparing a string with the reversed one: If both the strings are equal then print Yes, else No.

Python Implementation

C++ Implementation

Java Implementation

Output:

Complexity Analysis

Time Complexity: O(N) => N time is required to reverse the string and N to compare the strings, so the overall time complexity is O(N). Space Complexity: O(N) => O(N) space is required, as a new string of length to store the copy of the string.

Conclusion

  • A string is called as a palindrome string if the reverse of the given string is same as the original string.
  • There are differen approaches to check for a palindrome string like using recursion, string library or standard method.