📜  以波形打印字符串

📅  最后修改于: 2022-05-13 01:57:59.309000             🧑  作者: Mango

以波形打印字符串

给定一个字符串,你需要将这个字符串转换成波形

例子:

Input : GeeksforGeeks, 2
Output :
G  e  s  o  G  e  s 
 e  k  f  r  e  k  

Input : GeeksforGeeks, 4
Output :
G      o      s 
 e    f  r    k  
  e  s    G  e   
   k      e    
C++
// CPP program to print wave pattern
// of a given string
// This is a modified code of
// https://www.geeksforgeeks.org/print-concatenation-of-zig-zag-string-form-in-n-rows/
 
#include
using namespace std;
 
// Function that takes string and zigzag offset
void fun(string s, int n)
{
    // if offset is 1
    if (n==1)            
    {
        // simply print the string and return
        cout << s;            
        return;
    }
 
    // Get length of the string
    int len = s.length();
     
    // Create a 2d character array
    char a[len][len] = { };
     
    // for counting the rows of the ZigZag
    int row = 0;        
    bool down;
     
    for (int i=0; i


Java
// Java program to print wave 
// pattern of a given string
import java.lang.*;
import java.util.*;
class GFG
{
 
    // Function that takes
    // string and zigzag offset
    static void fun(String s, int n)
    {
         
    // if offset is 1
    if (n == 1)            
    {
        // simply print the
        // string and return
        System.out.print(s);            
        return;
    }
 
    // Get length of the string
    int len = s.length();
     
    // Create a 2d character array
    char [][]a = new char[len][len];
    char []c = s.toCharArray();
     
    // for counting the
    // rows of the ZigZag
    int row = 0;        
    boolean down = true;
     
    for (int i = 0; i < len; i++)
    {
        // put characters in
        // the matrix
        a[row][i] = c[i];
         
        // You have reached
        // the bottom
        if (row == n - 1)
            down = false;    
        else if (row == 0)
            down = true;
             
        if(down)
            row++;
        else
            row--;
    }
     
    // Print the Zig-Zag String
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < len; j++)
        {
            System.out.print(a[i][j] + " ");
        }
        System.out.println();
    }
    }
     
    // Driver Code
    public static void main(String[] args)
    {
        String s = "GeeksforGeeks";
        int n = 3;
        fun(s, n);
    }
}
 
// This code is contributed
// by ChitraNayal


Python 3
# Function that takes string
# and zigzag offset
def fun(s, n):
     
    # if offset is 1
    if (n == 1):
         
        # simply print the
        # string and return
        print(s)            
        return
 
    # Get length of the string
    l = len(s)
     
    # Create a 2d character array
    a = [[" " for x in range(l)] for y in range(l)]
 
    # for counting the
    # rows of the ZigZag
    row = 0
    for i in range(l):
         
        # put characters in the matrix
        a[row][i] = s[i];
     
        # You have reached the bottom
        if row == n - 1:
            down = False   
        elif row == 0:
            down = True
        if down == True:
            row = row + 1
        else:
            row = row - 1
 
    # Print the Zig-Zag String
    for i in range(n):
        for j in range(l):
            print(str(a[i][j]), end = " ")
        print()
     
# Driver Code
s = "GeeksforGeeks"
n = 3
fun(s, n)
 
# This code is contributed
# by ChitraNayal


C#
// C# program to print wave
// pattern of a given string
using System;
 
class GFG
{
 
    // Function that takes
    // string and zigzag offset
    static void fun(string s, int n)
    {
         
    // if offset is 1
    if (n == 1)            
    {
        // simply print the
        // string and return
        Console.Write(s);            
        return;
    }
 
    // Get length of the string
    int len = s.Length;
     
    // Create a 2d character array
    char[,] a = new char[len,len];
    char[] c = s.ToCharArray();
     
    // for counting the
    // rows of the ZigZag
    int row = 0;        
    bool down = true;
     
    for (int i = 0; i < len; i++)
    {
        // put characters
        // in the matrix
        a[row, i] = c[i];
         
        // You have reached the bottom
        if (row == n - 1)
            down = false;    
        else if (row == 0)
            down = true;
             
        if(down)
            row++;
        else
            row--;
    }
     
    // Print the Zig-Zag String
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < len; j++)
        {
            Console.Write(a[i, j] + " ");
        }
        Console.Write("\n");
    }
    }
     
    // Driver Code
    public static void Main()
    {
        string s = "GeeksforGeeks";
        int n = 3;
        fun(s, n);
    }
}
 
// This code is contributed
// by ChitraNayal


PHP


Javascript


输出:

G       s       G       s 
  e   k   f   r   e   k   
    e       o       e