Dada una string de longitud impar, imprima el formato de string X.
Ejemplos:
Input: 12345 Output: 1 5 2 4 3 2 4 1 5 Input: geeksforgeeks Output: g s e k e e k e s g f r o f r s g k e e e e k g s
Le recomendamos encarecidamente que minimice su navegador y que pruebe esto usted mismo primero.
La idea es usar dos variables en un solo ciclo, la primera variable ‘i’ va de izquierda a derecha y la segunda variable ‘j’ va de derecha a izquierda. La parte superior de Cross (o X) se imprime antes de que se encuentren. El carácter central se imprime cuando se encuentran y la parte inferior se imprime después de que se cruzan. En la parte superior, str[i] se imprime antes de str[j] y en la parte inferior, str[j] se imprime antes de str[i].
A continuación se muestra la implementación de la idea anterior.
C
// C++ program to print Cross pattern #include<iostream> using namespace std; // Function to print given string in cross pattern // Length of string must be odd void printPattern(string str) { int len = str.length(); // i goes from 0 to len and j goes from len-1 to 0 for (int i=0,j=len-1; i<=len,j>=0; i++,j--) { // To print the upper part. This loop runs // till middle point of string (i and j become // same if (i<j) { // Print i spaces for (int x=0; x<i; x++) cout << " "; // Print i'th character cout << str[i]; // Print j-i-1 spaces for (int x=0; x<j-i-1; x++) cout << " "; // Print j'th character cout << str[j] << endl; } // To print center point if (i==j) { // Print i spaces for (int x=0; x<i; x++) cout << " "; // Print middle character cout << str[i] << endl; } // To print lower part else if (i>j) { // Print j spaces for (int x = j-1; x>=0; x--) cout << " "; // Print j'th character cout << str[j]; // Print i-j-1 spaces for (int x=0; x<i-j-1; x++) cout << " "; // Print i'h character cout << str[i] << endl; } } } // Driver program int main() { printPattern("geeksforgeeks"); return 0; }
Java
// Java program to // print cross pattern class GFG { // Function to print given // string in cross pattern static void pattern(String str, int len) { // i and j are the indexes // of characters to be // displayed in the ith // iteration i = 0 initially // and go upto length of string // j = length of string initially // in each iteration of i, // we increment i and decrement j, // we print character only // of k==i or k==j for (int i = 0; i < len; i++) { int j = len - 1 - i; for (int k = 0; k < len; k++) { if (k == i || k == j) System.out.print(str.charAt(k)); else System.out.print(" "); } System.out.println(""); } } // Driver code public static void main (String[] args) { String str = "geeksforgeeks"; int len = str.length(); pattern(str, len); } } // This code is contributed // by Smitha
Python3
# Python 3 program to # print cross pattern # Function to print given # string in cross pattern def pattern(str, len): # i and j are the indexes # of characters to be # displayed in the ith # iteration i = 0 initially # and go upto length of string # j = length of string initially # in each iteration of i, we # increment i and decrement j, # we print character only of # k==i or k==j for i in range(0, len): j = len -1 - i for k in range(0, len): if (k == i or k == j): print(str[k], end = "") else: print(end = " ") print(" ") # Driver code str = "geeksforgeeks" len = len(str) pattern(str, len) # This code is contributed # by Smitha
C#
// C# program to print // cross pattern using System; class GFG { // Function to print given // string in cross pattern static void pattern(String str, int len) { // i and j are the indexes // of characters to be // displayed in the ith // iteration i = 0 initially // and go upto length of string // j = length of string initially // in each iteration of i, we // increment i and decrement j, // we print character only of // k==i or k==j for (int i = 0; i < len; i++) { int j = len - 1 - i; for (int k = 0; k < len; k++) { if (k == i || k == j) Console.Write(str[k]); else Console.Write(" "); } Console.Write("\n"); } } // Driver code public static void Main () { String str = "geeksforgeeks"; int len = str.Length; pattern(str, len); } } // This code is contributed by Smitha
PHP
<?php // PHP program to print // Cross pattern // Function to print given // string in cross pattern, // Length of string must be odd function printPattern($str) { $len = strlen($str); // i goes from 0 to len and // j goes from len-1 to 0 for ($i = 0, $j = $len - 1; $i <= $len, $j >= 0; $i++, $j--) { // To print the upper part. // This loop runs till middle point // of string i and j become same if ($i < $j) { // Print i spaces for ($x = 0; $x < $i; $x++) echo " "; // Print i'th character echo $str[$i]; // Print j-i-1 spaces for ( $x = 0; $x < $j - $i - 1; $x++) echo " "; // Print j'th character echo $str[$j]."\n"; } // To print center point if ($i == $j) { // Print i spaces for ($x = 0; $x < $i; $x++) echo " "; // Print middle character echo $str[$i]."\n"; } // To print lower part else if ($i > $j) { // Print j spaces for ($x = $j - 1; $x >= 0; $x--) echo " "; // Print j'th character echo $str[$j]; // Print i-j-1 spaces for ( $x = 0; $x < $i - $j - 1; $x++) echo " "; // Print i'h character echo $str[$i]."\n"; } } } // Driver code printPattern("geeksforgeeks"); // This code is contributed by mits ?>
Javascript
<script> // javascript program to // print cross pattern // Function to print given // string in cross pattern function pattern(str,len) { // i and j are the indexes // of characters to be // displayed in the ith // iteration i = 0 initially // and go upto length of string // j = length of string initially // in each iteration of i, // we increment i and decrement j, // we print character only // of k==i or k==j for (i = 0; i < len; i++) { var j = len - 1 - i; for (k = 0; k < len; k++) { if (k == i || k == j) document.write(str.charAt(k)); else document.write(" "); } document.write("<br>"); } } // Driver code str = "geeksforgeeks"; var len = str.length; pattern(str, len); // This code is contributed by Amit Katiyar </script>
C++
// CPP program to print cross pattern #include<bits/stdc++.h> using namespace std; // Function to print given string in // cross pattern void pattern(string str, int len){ // i and j are the indexes of characters // to be displayed in the ith iteration // i = 0 initially and go upto length of // string // j = length of string initially // in each iteration of i, we increment // i and decrement j, we print character // only of k==i or k==j for (int i = 0; i < len; i++) { int j = len -1 - i; for (int k = 0; k < len; k++) { if (k == i || k == j) cout << str[k]; else cout << " "; } cout << endl; } } // driver code int main () { string str = "geeksforgeeks"; int len = str.size(); pattern(str, len); return 0; } // This code is contributed by Satinder Kaur
Java
// Java program to print cross pattern class GFG { // Function to print given // string in cross pattern static void pattern(String str, int len) { // i and j are the indexes of // characters to be displayed // in the ith iteration i = 0 // initially and go upto length // of string j = length of string // initially in each iteration // of i, we increment i and decrement // j, we print character only // of k==i or k==j for (int i = 0; i < len; i++) { int j = len -1 - i; for (int k = 0; k < len; k++) { if (k == i || k == j) System.out.print(str.charAt(k)); else System.out.print(" "); } System.out.println(""); } } // driver code public static void main(String[] args) { String str = "geeksforgeeks"; int len = str.length(); pattern(str, len); } } // This code is contributed by 29AjayKumar
Python3
# Python 3 program to print cross pattern # Function to print given string in # cross pattern def pattern(st, length): # i and j are the indexes of characters # to be displayed in the ith iteration # i = 0 initially and go upto length of # string # j = length of string initially # in each iteration of i, we increment # i and decrement j, we print character # only of k==i or k==j for i in range(length): j = length -1 - i for k in range(length): if (k == i or k == j): print(st[k],end="") else: print(" ",end="") print() # driver code if __name__ == "__main__": st = "geeksforgeeks" length = len(st) pattern(st, length)
C#
// C# program to print cross pattern using System; class GFG { // Function to print given // string in cross pattern static void pattern(String str, int len) { // i and j are the indexes of // characters to be displayed // in the ith iteration i = 0 // initially and go upto length // of string j = length of string // initially in each iteration // of i, we increment i and decrement // j, we print character only // of k==i or k==j for (int i = 0; i < len; i++) { int j = len -1 - i; for (int k = 0; k < len; k++) { if (k == i || k == j) Console.Write(str[k]); else Console.Write(" "); } Console.WriteLine(""); } } // Driver code public static void Main(String[] args) { String str = "geeksforgeeks"; int len = str.Length; pattern(str, len); } } // This code is contributed by Rajput-Ji
PHP
<?php // PHP program to print // cross pattern // Function to print given // string in cross pattern function pattern($str, $len) { // i and j are the indexes of // characters to be displayed // in the ith iteration i = 0 // initially and go upto length of // string // j = length of string initially // in each iteration of i, we // increment i and decrement j, we // print character only of k==i or k==j for ($i = 0; $i < $len; $i++) { $j = $len -1 - $i; for ($k = 0; $k < $len; $k++) { if ($k == $i || $k == $j) echo $str[$k]; else echo " "; } echo "\n"; } } // Driver code $str = "geeksforgeeks"; $len = strlen($str); pattern($str, $len); // This code is contributed by mits ?>
Javascript
<script> // Javascript program to print cross pattern // Function to print given // string in cross pattern function pattern(str , len) { // i and j are the indexes of // characters to be displayed // in the ith iteration i = 0 // initially and go upto length // of string j = length of string // initially in each iteration // of i, we increment i and decrement // j, we print character only // of k==i or k==j for (var i = 0; i < len; i++) { var j = len -1 - i; for (var k = 0; k < len; k++) { if (k == i || k == j) document.write(str.charAt(k)); else document.write(" "); } document.write('<br>'); } } // driver code var str = "geeksforgeeks"; var len = str.length; pattern(str, len); // This code is contributed by 29AjayKumar </script>
CPP
// C++ program to print the given pattern #include<bits/stdc++.h> using namespace std; // Function to print the given // string in respective pattern void printPattern(string str, int len) { for(int i = 0; i < len; i++) { for(int j = 0; j < len; j++) { // Print characters at corresponding // places satisfying the two conditions if((i == j) || (i + j == len-1)) cout<<str[j]; // Print blank space at rest of places else cout<<" "; } cout<<endl; } } // Driver Code int main() { string str = "geeksforgeeks"; int len = str.size(); printPattern(str, len); return 0; } // This code and Approach is contributed by // Aravind Kimonn
Java
// Java program to print the given pattern import java.io.*; class GFG { // Function to print the given // string in respective pattern static void printPattern(String str, int len) { for(int i = 0; i < len; i++) { for(int j = 0; j < len; j++) { // Print characters at corresponding // places satisfying the two conditions if((i == j) || (i + j == len - 1)) System.out.print(str.charAt(j)); // Print blank space at rest of places else System.out.print(" "); } System.out.println(); } } // Driver code public static void main (String[] args) { String str = "geeksforgeeks"; int len = str.length(); printPattern(str, len); } } // This code is contributed by rag2127.
Python3
# Python3 program to print the given pattern # Function to print the given # string in respective pattern def printPattern (Str, Len) : for i in range(Len) : for j in range(Len) : # Print characters at corresponding # places satisfying the two conditions if ((i == j) or (i + j == Len - 1)) : print(Str[j], end = "") # Print blank space at rest of places else : print(" ", end = "") print() Str = "geeksforgeeks" Len = len(Str) printPattern(Str, Len) # This code is contributed by divyeshrabadiya07.
C#
// C# program to print the given pattern using System; public class GFG { // Function to print the given // string in respective pattern static void printPattern(string str, int len) { for(int i = 0; i < len; i++) { for(int j = 0; j < len; j++) { // Print characters at corresponding // places satisfying the two conditions if((i == j) || (i + j == len - 1)) Console.Write(str[j]); // Print blank space at rest of places else Console.Write(" "); } Console.WriteLine(); } } // Driver code static public void Main () { String str = "geeksforgeeks"; int len = str.Length; printPattern(str, len); } } // This code is contributed by avanitrachhadiya2155
Javascript
<script> // javascript program to print the given pattern // Function to print the given // string in respective pattern function printPattern(str , len) { for(var i = 0; i < len; i++) { for(var j = 0; j < len; j++) { // Print characters at corresponding // places satisfying the two conditions if((i == j) || (i + j == len - 1)) document.write(str.charAt(j)); // Print blank space at rest of places else document.write(" "); } document.write('<br>'); } } // Driver code var str = "geeksforgeeks"; var len = str.length; printPattern(str, len); // This code is contributed by 29AjayKumar </script>
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