Dada una string, X . Forme una string S repitiendo la string X varias veces, es decir, agregando la string X varias veces consigo misma. Hay consultas Q de las formas i y j. La tarea es imprimir «Sí» si el elemento en el índice i es el mismo que el elemento en el índice j en S, de lo contrario, imprimir «No» para cada consulta.
Ejemplos:
Input : X = "geeksforgeeks", Q = 3. Query 1: 0 8 Query 2: 8 13 Query 3: 6 15 Output : Yes Yes No String S will be "geeksforgeeksgeeksforgeeks....". For Query 1, index 0 and index 8 have same element i.e 'g'. For Query 2, index 8 and index 13 have same element i.e 'g'. For Query 3, index 6 = 'o' and index 15 = 'e' which are not same.
Sea n la longitud de la string X. Observe que los elementos en los índices 0, n, 2n, 3n,…. son lo mismo. De manera similar para el índice i, la posición i, n+i, 2n+i, 3n+i,….. contienen el mismo elemento.
Entonces, para cada consulta, encuentre (i%n) y (j%n), y si ambos son iguales para la string X.
A continuación se muestra la implementación de la idea anterior:
C++
// Queries for same characters in a repeated // string #include <bits/stdc++.h> using namespace std; // Print whether index i and j have same // element or not. void query(char s[], int i, int j) { int n = strlen(s); // Finding relative position of index i,j. i %= n; j %= n; // Checking is element are same at index i, j. (s[i] == s[j]) ? (cout << "Yes" << endl) : (cout << "No" << endl); } // Driven Program int main() { char X[] = "geeksforgeeks"; query(X, 0, 8); query(X, 8, 13); query(X, 6, 15); return 0; }
Java
// Java Program to Queries for // same characters in a // repeated string import java.io.*; public class GFG{ // Print whether index i and j // have same element or not static void query(String s, int i, int j) { int n = s.length(); // Finding relative position // of index i,j i %= n; j %= n; // Checking is element are same // at index i, j if(s.charAt(i) == s.charAt(j)) System.out.println("Yes"); else System.out.println("No"); } // Driver Code static public void main (String[] args) { String X = "geeksforgeeks"; query(X, 0, 8); query(X, 8, 13); query(X, 6, 15); } } // This code is contributed by vt_m.
Python3
# Queries for same characters in a repeated # string # Print whether index i and j have same # element or not. def query(s, i, j): n = len(s) # Finding relative position of index i,j. i %= n j %= n # Checking is element are same at index i, j. print("Yes") if s[i] == s[j] else print("No") # Driver code if __name__ == "__main__": X = "geeksforgeeks" query(X, 0, 8) query(X, 8, 13) query(X, 6, 15) # This code is contributed by # sanjeev2552
C#
// C# Program to Queries for // same characters in a // repeated string using System; public class GFG{ // Print whether index i and j // have same element or not static void query(string s, int i, int j) { int n = s.Length; // Finding relative position // of index i,j. i %= n; j %= n; // Checking is element are // same at index i, j if(s[i] == s[j]) Console.WriteLine("Yes"); else Console.WriteLine("No"); } // Driver Code static public void Main () { string X = "geeksforgeeks"; query(X, 0, 8); query(X, 8, 13); query(X, 6, 15); } } // This code is contributed by vt_m.
PHP
<?php // Queries for same characters // in a repeated string // Print whether index i and j // have same element or not. function query($s, $i, $j) { $n = strlen($s); // Finding relative position // of index i,j. $i %= $n; $j %= $n; // Checking is element are // same at index i, j. if(($s[$i] == $s[$j])) echo "Yes\n" ; else echo "No" ; } // Driver Code $X = "geeksforgeeks"; query($X, 0, 8); query($X, 8, 13); query($X, 6, 15); // This code is contributed by nitin mittal. ?>
Javascript
<script> // Javascript Program to Queries for // same characters in a // repeated string // Print whether index i and j // have same element or not function query(s, i, j) { let n = s.length; // Finding relative position // of index i,j. i %= n; j %= n; // Checking is element are // same at index i, j if(s[i] == s[j]) document.write("Yes" + "</br>"); else document.write("No" + "</br>"); } let X = "geeksforgeeks"; query(X, 0, 8); query(X, 8, 13); query(X, 6, 15); </script>
Yes Yes No
Complejidad temporal: O(1)
Espacio auxiliar: O(1 )
Este artículo es una contribución de Anuj Chauhan . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA