Imprimir string de longitud impar en formato ‘X’

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *