Dada la string str , la tarea es verificar si la string dada es lineal o no. Si es lineal, imprima «Sí» , de lo contrario, imprima «No» .
Sea la string «abcdefghij». Se puede dividir como:
«a»
«bc»
«def»
«ghij»
si los caracteres a, b, c y son iguales, entonces la string dada es lineal; de lo contrario, no.
Por lo tanto, si la string tiene la forma «xxaxabcxabcdxabcdexab…», se denomina string lineal .
Ejemplos:
Entrada: str = “aapaxyayziabcde”
Salida: Sí
Explicación:
a
ap
axy
ayzi
abcde
Todas las strings rotas tienen el mismo carácter que el primer carácter.
Entrada: str = “bbobfycd”
Salida: No
Explicación:
b
bo
bfy
cd
Aquí b=b=b!=c
Enfoque: para verificar si la string dada tiene la forma «xxaxabcxabcdxabcdexab…» , entonces debemos verificar si los caracteres en el índice 0, 1, 3, 6, 10, … son iguales o no.
Si todos los caracteres en los índices anteriores son iguales, la string dada es una string lineal ; de lo contrario, no lo es.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if the given // string is linear or not int is_linear(string s) { int tmp = 0; char first = s[0]; // Iterate over string for (int pos = 0; pos < s.length(); pos += tmp) { // If character is not same as // the first character then // return false if (s[pos] != first) { return false; } // Increment the tmp tmp++; } return true; } // Driver Code int main() { // Given String str string str = "aapaxyayziabcde"; // Function Call if (is_linear(str)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
Java
// Java program for the above approach import java.util.*; class GFG{ // Function to check if the given // string is linear or not static boolean is_linear(String s) { int tmp = 0; char first = s.charAt(0); // Iterate over string for(int pos = 0; pos < s.length(); pos += tmp) { // If character is not same as // the first character then // return false if (s.charAt(pos) != first) { return false; } // Increment the tmp tmp++; } return true; } // Driver code public static void main(String[] args) { // Given String str String str = "aapaxyayziabcde"; // Function call if (is_linear(str)) { System.out.println("Yes"); } else { System.out.println("No"); } } } // This code is contributed by offbeat
Python3
# Python3 program for the above approach # Function to check if the given # is linear or not def is_linear(s): tmp = 0 first = s[0] pos = 0 # Iterate over string while pos < len(s): # If character is not same as # the first character then # return false if (s[pos] != first): return False # Increment the tmp tmp += 1 pos += tmp return True # Driver Code if __name__ == '__main__': # Given String str str = "aapaxyayziabcde" # Function call if (is_linear(str)): print("Yes") else: print("No") # This code is contributed by mohit kumar 29
C#
// C# program for the above approach using System; class GFG{ // Function to check if the given // string is linear or not static bool is_linear(String s) { int tmp = 0; char first = s[0]; // Iterate over string for(int pos = 0; pos < s.Length; pos += tmp) { // If character is not same as // the first character then // return false if (s[pos] != first) { return false; } // Increment the tmp tmp++; } return true; } // Driver code public static void Main(String[] args) { // Given String str String str = "aapaxyayziabcde"; // Function call if (is_linear(str)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by grand_master
Javascript
<script> // Javascript program for the above approach // Function to check if the given // string is linear or not function is_linear(s) { let tmp = 0; let first = s[0]; // Iterate over string for(let pos = 0; pos < s.length; pos += tmp) { // If character is not same as // the first character then // return false if (s[pos] != first) { return false; } // Increment the tmp tmp++; } return true; } // Driver Code // Given String str let str = "aapaxyayziabcde"; // Function call if (is_linear(str)) { document.write("Yes"); } else { document.write("No"); } </script>
Yes
Complejidad temporal: O(log N)
Espacio auxiliar: O(1)