Dado un número N. La tarea es crear una string alfabética en minúsculas a partir de ese número y decir si la string es palíndromo o no. a = 0, b = 1….. y así sucesivamente.
Por ejemplo: si el número es 61, la substring «gb» se imprimirá hasta 7 (6+1) caracteres, es decir, «gbgbgbg» y comprobará si es palíndromo o no.
Nota: Ningún número comenzará con cero. Considere los alfabetos ‘a a j’ solo, es decir, números de un solo dígito del 0 al 9.
Ejemplos :
Entrada: N = 61
Salida: SÍ
Los números 6, 1 representan las letras ‘g’, ‘b’ respectivamente. Entonces la substring es ‘gb’ y la suma es 7(6+1). Así, la string alfabética formada es ‘gbgbgbg’ y es un palíndromo.Entrada: N = 1998
Salida: NO
Los números 1, 9, 8 representan las letras ‘b’, ‘j’ e ‘i’ respectivamente. Entonces la substring es ‘bjji’ y la suma es 27(1+9+9+8). Así, la string alfabética formada es bjjibjjibjjibjjibjjibjjibjj’, y no es un palíndromo.
Acercarse:
- Obtenga la substring correspondiente al número N dado y mantenga la suma de sus dígitos.
- Agregue la substring hasta que su longitud sea igual a la suma de los dígitos de N.
- Comprobar si la string obtenida es Palindrome o no.
- Si es un palíndromo, escriba SÍ.
- De lo contrario, imprima NO.
A continuación se muestra la implementación del enfoque anterior:
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
YES
Publicación traducida automáticamente
Artículo escrito por rachana soma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA