Dada la string str , la tarea es imprimir el patrón dado en los ejemplos a continuación:
Ejemplos:
Entrada: str = “geeks”
Salida:
geeks
*kee*
**e**
El reverso de “geeks” es “skeeg”
Reemplace el primer y último carácter con ‘*’, es decir, *kee*
Reemplace el segundo y el penúltimo carácter en la string modificada, es decir, **e**
y así sucesivamente.Entrada: str = “primero”
Salida:
primero
*sri*
**r**
Acercarse:
- Imprime la string sin modificar.
- Invierta la string e inicialice i = 0 y j = n – 1 .
- Reemplace s[i] = ‘*’ y s[j] = ‘*’ y actualice i = i + 1 y j = j – 1 y luego imprima la string modificada.
- Repita los pasos anteriores mientras j – i > 1 .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to print the required pattern #include <bits/stdc++.h> using namespace std; // Function to print the required pattern void printPattern(char s[], int n) { // Print the unmodified string cout << s << "\n"; // Reverse the string int i = 0, j = n - 2; while (i < j) { char c = s[i]; s[i] = s[j]; s[j] = c; i++; j--; } // Replace the first and last character by '*' then // second and second last character and so on // until the string has characters remaining i = 0; j = n - 2; while (j - i > 1) { s[i] = s[j] = '*'; cout << s << "\n"; i++; j--; } } // Driver code int main() { char s[] = "geeks"; int n = sizeof(s) / sizeof(s[0]); printPattern(s, n); return 0; }
Java
// Java program to print the required pattern class GFG { // Function to print the required pattern static void printPattern(char[] s, int n) { // Print the unmodified string System.out.println(s); // Reverse the string int i = 0, j = n - 1; while (i < j) { char c = s[i]; s[i] = s[j]; s[j] = c; i++; j--; } // Replace the first and last character // by '*' then second and second last // character and so on until the string // has characters remaining i = 0; j = n - 1; while (j - i > 1) { s[i] = s[j] = '*'; System.out.println(s); i++; j--; } } // Driver Code public static void main(String []args) { char[] s = "geeks".toCharArray(); int n = s.length; printPattern(s, n); } } // This code is contributed by Rituraj Jain
Python3
# Python3 program to print the required pattern # Function to print the required pattern def printPattern(s, n): # Print the unmodified string print(''.join(s)) # Reverse the string i, j = 0, n - 1 while i < j: s[i], s[j] = s[j], s[i] i += 1 j -= 1 # Replace the first and last character # by '*' then second and second last # character and so on until the string # has characters remaining i, j = 0, n - 1 while j - i > 1: s[i], s[j] = '*', '*' print(''.join(s)) i += 1 j -= 1 # Driver code if __name__ == "__main__": s = "geeks" n = len(s) printPattern(list(s), n) # This code is contributed # by Rituraj Jain
C#
// C# program to print the required pattern using System; class GFG { // Function to print the required pattern static void printPattern(char[] s, int n) { // Print the unmodified string Console.WriteLine(s); // Reverse the string int i = 0, j = n - 1; while (i < j) { char c = s[i]; s[i] = s[j]; s[j] = c; i++; j--; } // Replace the first and last character // by '*' then second and second last // character and so on until the string // has characters remaining i = 0; j = n - 1; while (j - i > 1) { s[i] = s[j] = '*'; Console.WriteLine(s); i++; j--; } } // Driver Code public static void Main(String []args) { char[] s = "geeks".ToCharArray(); int n = s.Length; printPattern(s, n); } } // This code is contributed by 29AjayKumar
Javascript
<script> // Javascript program to print the required pattern // Function to print the required pattern function printPattern(s, n) { // Print the unmodified string document.write( s.join('') + "<br>"); // Reverse the string var i = 0, j = n - 1; while (i < j) { var c = s[i]; s[i] = s[j]; s[j] = c; i++; j--; } // Replace the first and last character by '*' then // second and second last character and so on // until the string has characters remaining i = 0; j = n - 1; while (j - i > 1) { s[i] = s[j] = '*'; document.write( s.join('') + "<br>"); i++; j--; } } // Driver code var s = "geeks".split(''); var n = s.length; printPattern(s, n); </script>
Producción:
geeks *kee* **e**
Complejidad temporal: O(n)
Espacio Auxiliar: O(1)