Dada la string S que consta solo de letras minúsculas en inglés. La tarea es encontrar si existe alguna string que tenga un desplazamiento a la izquierda y un desplazamiento a la derecha iguales a la string S. Si existe alguna string, imprima Sí, de lo contrario imprima No.
Ejemplos:
Entrada: S = “abcd”
Salida: No
Explicación:
No hay ninguna string que tenga el desplazamiento a la izquierda y el desplazamiento a la derecha iguales a la string “abcd”.Entrada: papa
Salida: Sí
Explicación:
El desplazamiento a la izquierda y el desplazamiento a la derecha de la string «apap» equivalen a la string «papa».
Acercarse:
- El objetivo principal es verificar que el desplazamiento a la izquierda y el desplazamiento a la derecha de cualquier string sean iguales o no a la string dada.
- Para eso, solo tenemos que verificar que cada carácter de la string dada sea igual o no al siguiente carácter (es decir, el carácter en (i) la ésima posición debe ser igual al carácter en (i+2) la ésima posición).
- Si es cierto para cada posición en la string dada, entonces podemos decir que existe cualquier string cuyo desplazamiento a la izquierda y a la derecha sean iguales a la string dada; de lo contrario, no.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to check if left // and right shift of any string // results into the given string #include <bits/stdc++.h> using namespace std; // Function to check string exist // or not as per above approach void check_string_exist(string S) { int size = S.length(); bool check = true; for (int i = 0; i < size; i++) { // Check if any character // at position i and i+2 // are not equal // then string doesnot exist if (S[i] != S[(i + 2) % size]) { check = false; break; } } if (check) cout << "Yes" << endl; else cout << "No" << endl; } // Driver code int main() { string S = "papa"; check_string_exist(S); return 0; }
Java
// Java program to check if left // and right shift of any string // results into the given string class GFG{ // Function to check string exist // or not as per above approach public static void check_string_exist(String S) { int size = S.length(); boolean check = true; for(int i = 0; i < size; i++) { // Check if any character // at position i and i+2 // are not equal // then string doesnot exist if (S.charAt(i) != S.charAt((i + 2) % size)) { check = false; break; } } if (check) System.out.println("Yes"); else System.out.println("No"); } // Driver Code public static void main(String[] args) { String S = "papa"; check_string_exist(S); } } // This code is contributed by divyeshrabadiya07
Python3
# Python3 program to check if left # and right shift of any string # results into the given string # Function to check string exist # or not as per above approach def check_string_exist(S): size = len(S) check = True for i in range(size): # Check if any character # at position i and i+2 # are not equal, then # string doesnot exist if S[i] != S[(i + 2) % size]: check = False break if check : print("Yes") else: print("No") # Driver Code S = "papa" check_string_exist(S) # This code is contributed by divyeshrabadiya07
C#
// C# program to check if left // and right shift of any string // results into the given string using System; class GFG{ // Function to check string exist // or not as per above approach public static void check_string_exist(String S) { int size = S.Length; bool check = true; for(int i = 0; i < size; i++) { // Check if any character // at position i and i+2 // are not equal // then string doesnot exist if (S[i] != S[(i + 2) % size]) { check = false; break; } } if (check) Console.WriteLine("Yes"); else Console.WriteLine("No"); } // Driver Code public static void Main(String[] args) { String S = "papa"; check_string_exist(S); } } // This code is contributed by sapnasingh4991
Javascript
<script> // Javascript program to check if left // and right shift of any string // results into the given string // Function to check string exist // or not as per above approach function check_string_exist(S) { var size = S.length; var check = true; for (var i = 0; i < size; i++) { // Check if any character // at position i and i+2 // are not equal // then string doesnot exist if (S[i] != S[(i + 2) % size]) { check = false; break; } } if (check) document.write( "Yes" ); else document.write( "No" ); } // Driver code var S = "papa"; check_string_exist(S); // This code is contributed by noob2000. </script>
Yes
Complejidad de tiempo: O(N) donde N es el tamaño de la string S.
Complejidad de espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por divyeshrabadiya07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA