
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Palindrome Pairs
								Certification: Advanced Level
								Accuracy: 0%
								Submissions: 0
								Points: 15
							
							Write a C program to find all pairs of unique indices (i, j) such that the concatenation of words[i] + words[j] forms a palindrome. Given a list of unique words, you need to return all the pairs of indices where concatenating the words at those indices results in a palindrome string.
Example 1
- Input: words = ["lls", "s", "sssll"]
 - Output: [[0,1], [1,0], [2,1]]
 - Explanation: 
Step 1: Check all possible pairs for palindrome concatenation
Step 2: words[0] + words[1] = "lls" + "s" = "llss" (not palindrome)
Step 3: words[1] + words[0] = "s" + "lls" = "slls" (not palindrome)
Step 4: words[0] + words[1] = "lls" + "s" = "llss", words[1] + words[0] = "s" + "lls" = "slls", words[2] + words[1] = "sssll" + "s" = "ssslls" (palindrome) 
Example 2
- Input: words = ["abcd", "dcba", "lls", "s", "sssll"]
 - Output: [[0,1], [1,0], [3,2], [2,4]]
 - Explanation: 
Step 1: "abcd" + "dcba" = "abcddcba" (palindrome)
Step 2: "dcba" + "abcd" = "dcbaabcd" (palindrome)
Step 3: "s" + "lls" = "slls" (not palindrome), but reverse combinations work
Step 4: Multiple valid palindrome pairs found 
Constraints
- 1 <= words.length <= 5000
 - 0 <= words[i].length <= 300
 - words[i] consists of lowercase English letters
 - All words are unique
 - Time Complexity: O(n^2 * m) where n is number of words, m is average length
 - Space Complexity: O(1) excluding output array
 
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Check every pair of words (i, j) where i != j
 - For each pair, concatenate words[i] + words[j] and check if it's a palindrome
 - Use a helper function to verify if a string is a palindrome
 - Store valid pairs as [i, j] indices in the result array
 - Iterate through all combinations systematically to avoid missing pairs
 - Handle edge cases like empty strings appropriately