Check if it is possible to create a palindrome string from given N Last Updated : 24 Feb, 2023 Comments Improve Suggest changes Like Article Like Report Given a number N. The task is to create an alphabetical string in lower case from that number and tell whether the string is palindrome or not. a = 0, b = 1….. and so on. For eg: If the number is 61 the substring “gb” will be printed till 7 (6+1) characters i.e. “gbgbgbg” and check if palindrome or not. Note: No number will start with zero. Consider alphabets ' a to j ' only i.e. single digit numbers from 0 to 9. Examples: Input: N = 61 Output: YES Numbers 6, 1 represent letters 'g', 'b' respectively. So the substring is 'gb' and the sum is 7(6+1). Thus the alphabetical string formed is 'gbgbgbg', and is a palindrome. Input: N = 1998 Output: NO Numbers 1, 9, 8 represent letters 'b', 'j' and 'i' respectively. So the substring is 'bjji' and sum is 27(1+9+9+8). Thus the alphabetical string formed is bjjibjjibjjibjjibjjibjjibjj', and is not a palindrome. Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution. Approach: Obtain the substring corresponding to given number N and maintain its digit's sum.Append the substring till its length becomes equal to the sum of digits of N.Check if the string obtained is Palindrome or not.If it is a Palindrome, print YES.Else, print NO. Below is the implementation of the above approach: C++ // C++ implementation of the // above approach #include<bits/stdc++.h> using namespace std; // Function to check if a string // is palindrome or not bool isPalindrome(string s) { // String that stores characters // of s in reverse order string s1 = ""; // Length of the string s int N = s.length(); for (int i = N - 1; i >= 0; i--) s1 += s[i]; if (s == s1) return true; return false; } bool createString(int N) { string str = ""; string s = to_string(N); // String used to form substring // using N string letters = "abcdefghij"; // Variable to store sum // of digits of N int sum = 0; string substr = ""; // Forming the substring // by traversing N for (int i = 0; i < s.length(); i++) { int digit = s[i] - '0'; substr += letters[digit]; sum += digit; } // Appending the substr to str till // it's length becomes equal to sum while (str.length() <= sum) { str += substr; } // Trimming the string str so that // it's length becomes equal to sum str = str.substr(0, sum); return isPalindrome(str); } // Driver code int main() { int N = 61; // Calling function isPalindrome to // check if str is Palindrome or not bool flag = createString(N); if (flag) cout << "YES"; else cout << "NO"; } // This code is contributed by ihritik Java // Java implementation of the above approach import java.io.*; import java.util.*; public class GFG { // Function to check if a string is palindrome or not static boolean isPalindrome(String s) { // String that stores characters // of s in reverse order String s1 = ""; // Length of the string s int N = s.length(); for (int i = N - 1; i >= 0; i--) s1 += s.charAt(i); if (s.equals(s1)) return true; return false; } static boolean createString(int N) { String str = ""; String s = "" + N; // String used to form substring using N String letters = "abcdefghij"; // Variable to store sum of digits of N int sum = 0; String substr = ""; // Forming the substring by traversing N for (int i = 0; i < s.length(); i++) { int digit = s.charAt(i) - '0'; substr += letters.charAt(digit); sum += digit; } // Appending the substr to str // till it's length becomes equal to sum while (str.length() <= sum) { str += substr; } // Trimming the string str so that // it's length becomes equal to sum str = str.substring(0, sum); return isPalindrome(str); } // Driver code public static void main(String args[]) { int N = 61; // Calling function isPalindrome to // check if str is Palindrome or not boolean flag = createString(N); if (flag) System.out.println("YES"); else System.out.println("NO"); } } Python3 # Python3 implementation of # the above approach # Function to check if a string # is palindrome or not def isPalindrome(s): # String that stores characters # of s in reverse order s1 = "" # Length of the string s N = len(s) i = (N - 1) while(i >= 0): s1 += s[i] i = i - 1 if (s == s1): return True return False def createString(N): s2 = "" s = str(N) # String used to form # substring using N letters = "abcdefghij" # Variable to store sum # of digits of N sum = 0 substr = "" # Forming the substring # by traversing N for i in range(0, len(s)) : digit = int(s[i]) substr += letters[digit] sum += digit # Appending the substr to str till # it's length becomes equal to sum while (len(s2) <= sum): s2 += substr # Trimming the string str so that # it's length becomes equal to sum s2 = s2[:sum] return isPalindrome(s2) # Driver code N = 61; # Calling function isPalindrome to # check if str is Palindrome or not flag = createString(N) if (flag): print("YES") else: print("NO") # This code is contributed by ihritik C# // C# implementation of the // above approach using System; class GFG { // Function to check if a string // is palindrome or not static bool isPalindrome(String s) { // String that stores characters // of s in reverse order String s1 = ""; // Length of the string s int N = s.Length; for (int i = N - 1; i >= 0; i--) s1 += s[i]; if (s.Equals(s1)) return true; return false; } static bool createString(int N) { String str = ""; String s = "" + N; // String used to form substring // using N String letters = "abcdefghij"; // Variable to store sum // of digits of N int sum = 0; String substr = ""; // Forming the substring // by traversing N for (int i = 0; i < s.Length; i++) { int digit = s[i] - '0'; substr += letters[digit]; sum += digit; } // Appending the substr to str till // it's length becomes equal to sum while (str.Length <= sum) { str += substr; } // Trimming the string str so that // it's length becomes equal to sum str = str.Substring(0, sum); return isPalindrome(str); } // Driver code public static void Main() { int N = 61; // Calling function isPalindrome to // check if str is Palindrome or not bool flag = createString(N); if (flag) Console.WriteLine("YES"); else Console.WriteLine("NO"); } } // This code is contributed // by ihritik JavaScript // JavaScript implementation of the above approach // Function to check if a string // is palindrome or not function isPalindrome(s) { // String that stores characters // of s in reverse order let s1 = ""; // Length of the string s let N = s.length; let i = (N - 1); while (i >= 0) { s1 += s[i]; i = i - 1; } if (s == s1) { return true; } return false; } function createString(N) { let s2 = ""; let s = N.toString(); // String used to form // substring using N let letters = "abcdefghij"; // Variable to store sum // of digits of N let sum = 0; let substr = ""; // Forming the substring // by traversing N for (let i = 0; i < s.length; i++) { let digit = parseInt(s[i]); substr += letters[digit]; sum += digit; } // Appending the substr to str till // it's length becomes equal to sum while (s2.length <= sum) { s2 += substr; } // Trimming the string str so that // it's length becomes equal to sum s2 = s2.substring(0, sum); return isPalindrome(s2); } // Driver code let N = 61; // Calling function isPalindrome to // check if str is Palindrome or not let flag = createString(N); if (flag) { console.log("YES"); } else { console.log("NO"); } // This code is contributed by codebraxnzt OutputYES Comment More infoAdvertise with us Next Article Check if it is possible to create a palindrome string from given N rachana soma Follow Improve Article Tags : Strings DSA palindrome Arrays Practice Tags : ArrayspalindromeStrings Similar Reads Recursive function to check if a string is palindrome Given a string s, the task is to check if it is a palindrome or not.Examples:Input: s = "abba"Output: YesExplanation: s is a palindromeInput: s = "abc" Output: NoExplanation: s is not a palindromeUsing Recursion and Two Pointers - O(n) time and O(n) spaceThe idea is to recursively check if the strin 8 min read Check if a given string is Even-Odd Palindrome or not Given a string str, the task is to check if the given string is Even-Odd Palindrome or not. An Even-Odd Palindrome string is defined to be a string whose characters at even indices form a Palindrome while the characters at odd indices also form a Palindrome separately. Examples: Input: str="abzzab" 7 min read Check if K palindromic strings can be formed from a given string Given a string S of size N and an integer K, the task is to find whether the characters of the string can be arranged to make K palindromic strings simultaneously. Examples: Input: S = "annabelle", K = 2 Output: Yes Explanation: All characters of string S can be distributed into "elble" and "anna" w 7 min read Check if a given string is a rotation of a palindrome Given a string, check if it is a rotation of a palindrome. For example your function should return true for "aab" as it is a rotation of "aba". Examples: Input: str = "aaaad" Output: 1 // "aaaad" is a rotation of a palindrome "aadaa" Input: str = "abcd" Output: 0 // "abcd" is not a rotation of any p 15+ min read Rearrange characters to form palindrome if possible Given a string, convert the string to palindrome without any modifications like adding a character, removing a character, replacing a character etc. Examples: Input : "mdaam" Output : "madam" or "amdma" Input : "abb" Output : "bab" Input : "geeksforgeeks" Output : "No Palindrome"Count occurrences of 7 min read Check given string is oddly palindrome or not | Set 2 Given string str, the task is to check if characters at the odd indexes of str form a palindrome string or not. If not then print "No" else print "Yes". Examples: Input: str = "osafdfgsg", N = 9 Output: Yes Explanation: Odd indexed characters are = { s, f, f, s } so it will make palindromic string, 11 min read Remove a character from a string to make it a palindrome Given a string, we need to check whether it is possible to make this string a palindrome after removing exactly one character from this. Examples: Input : str = âabcbaâ Output : Yes we can remove character âcâ to make string palindrome Input : str = âabcbeaâ Output : Yes we can remove character âeâ 10 min read Generate number with given operation and check if it is palindrome Given an integer N the task is to create a string out of it by repeating the number such that the length of the resultant string is equal to the sum of the digits in the original number. For eg: If the number is 61 and the sum of the digits is 6 + 1 = 7 so the string generated after repeating 61 wil 7 min read Palindromic strings of length 3 possible by using characters of a given string Given a string S consisting of N characters, the task is to print all palindromic strings of length 3 in lexicographical order that can be formed using characters of the given string S. Examples: Input: S = "aabc"Output:abaaca Input: S = "ddadbac"Output:abaacaadadaddbddcdddd Approach: The given prob 9 min read Check if a linked list of strings forms a palindrome Given a linked list handling string data, check to see whether data is palindrome or not? For example, Input : a -> bc -> d -> dcb -> a -> NULL Output : True String "abcddcba" is palindrome. Output : a -> bc -> d -> ba -> NULL Output : False String "abcdba" is not palindro 6 min read Like