Open In App

Program to print Step Pattern

Improve
Improve
Like Article
Like
Save
Share
Report

The program must accept a string S and an integer N as the input. The program must print the desired pattern as shown below:

Examples: 

Input: string = “abcdefghijk”, n = 3 
Output: 

*b 
**c 
*d 

*f 
**g 
*h 

*j 
**k 
Explanation: 
Here N is 3. The highest possible height of the string pattern must be 3. Start from the height as 1. Increment till the value n(=3) is reached. Once the height is reached start decrementing. Repeat the process until all the characters in the string are printed.

Input: string = “GeeksForGeeks”, n = 4 
Output: 

*e 
**e 
***k 
**s 
*f 

*r 
**g 
***e 
**e 
*k 
s

Approach

  1. Set a flag to denote whether to increment or decrement 
  2. Set a variable x to denote the number of *s to print and initialize it to 0 
  3. Traverse through all the characters in the string 
  4. for each character print x *s 
  5. If the flag is set then increment 
  6. else decrement 
  7. If the x value is equal to n-1 then set the flag to false 
  8. If the x value is equal to 0 then set the flag to true 

Implementation:

C++




// C++ program to print Step Pattern
#include <iostream>
 
using namespace std;
 
// function to print the steps
void steps(string str, int n)
{
    // declare a flag
    bool flag;
    int x = 0;
 
    // traverse through all the characters in the string
    for (int i = 0; i < str.length(); i++) {
 
        // if the x value is 0.. then
        // we must increment till n ...
        // set flag to true
        if (x == 0)
            flag = true;
 
        // if the x value is n-1 then
        // we must decrement till 0 ...
        // set flag as false
        if (x == n - 1)
            flag = false;
 
        // print x *s
        for (int j = 0; j < x; j++)
            cout << "*";
 
        cout << str[i] << "\n";
 
        // checking whether to
        // increment or decrement x
        if (flag == true)
            x++;
        else
            x--;
    }
}
 
int main()
{
 
    // Get the String and the number n
    int n = 4;
    string str = "GeeksForGeeks";
 
    cout << "String: " << str << endl;
    cout << "Max Length of Steps: "
         << n << endl;
 
    // calling the function
    steps(str, n);
 
    return 0;
}


Java




// Java Program to print Step Pattern
import java.util.*;
 
class solution
{
 
// function to print the steps
static void steps(String str, int n)
{
    // declare a flag
    boolean flag = false;
    int x = 0;
 
    // traverse through all the characters in the string
    for (int i = 0; i < str.length(); i++) {
 
        // if the x value is 0.. then
        // we must increment till n ...
        // set flag to true
        if (x == 0)
            flag = true;
 
        // if the x value is n-1 then
        // we must decrement till 0 ...
        // set flag as false
        if (x == n - 1)
            flag = false;
 
        // print x *s
        for (int j = 0; j < x; j++)
            System.out.print("*");
 
        System.out.print(str.charAt(i)+"\n");
 
        // checking whether to
        // increment or decrement x
        if (flag == true)
            x++;
        else
            x--;
    }
}
 
public static void main(String args[])
{
 
    // Get the String and the number n
    int n = 4;
    String str = "GeeksForGeeks";
 
    System.out.println("String: "+str);
    System.out.println("Max Length of Steps: "+n);
 
    // calling the function
    steps(str, n);
 
}
}
 
// This code is contributed by
// Shashank_Sharma


Python3




# Python3 program to print Step Pattern
import math as mt
 
# function to print the steps
def steps(string, n):
     
    # declare a flag
    flag = False
    x = 0
 
    # traverse through all the characters
    # in the string
    for i in range(len(string)):
 
        # if the x value is 0.. then
        # we must increment till n ...
        # set flag to true
        if (x == 0):
            flag = True
 
        # if the x value is n-1 then
        # we must decrement till 0 ...
        # set flag as false
        if (x == n - 1):
            flag = False
 
        # print x *s
        for j in range(x):
            print("*", end = "")
 
        print(string[i])
 
        # checking whether to
        # increment or decrement x
        if (flag == True):
            x += 1
        else:
            x -= 1
 
# Driver code
 
# Get the String and the number n
n = 4
string = "GeeksForGeeks"
 
print("String: ", string)
print("Max Length of Steps: ", n)
 
# calling the function
steps(string, n)
 
# This code is contributed
# by Mohit kumar 29


C#




using System;
 
// C# Program to print Step Pattern
 
public class solution
{
 
// function to print the steps
public static void steps(string str, int n)
{
    // declare a flag
    bool flag = false;
    int x = 0;
 
    // traverse through all the characters in the string
    for (int i = 0; i < str.Length; i++)
    {
 
        // if the x value is 0.. then
        // we must increment till n ...
        // set flag to true
        if (x == 0)
        {
            flag = true;
        }
 
        // if the x value is n-1 then
        // we must decrement till 0 ...
        // set flag as false
        if (x == n - 1)
        {
            flag = false;
        }
 
        // print x *s
        for (int j = 0; j < x; j++)
        {
            Console.Write("*");
        }
 
        Console.Write(str[i] + "\n");
 
        // checking whether to
        // increment or decrement x
        if (flag == true)
        {
            x++;
        }
        else
        {
            x--;
        }
    }
}
 
// Driver code
public static void Main(string[] args)
{
 
    // Get the String and the number n
    int n = 4;
    string str = "GeeksForGeeks";
 
    Console.WriteLine("String: " + str);
    Console.WriteLine("Max Length of Steps: " + n);
 
    // calling the function
    steps(str, n);
 
}
}
 
  // This code is contributed by shrikant13


PHP




<?php
// PHP program to print Step Pattern
 
// function to print the steps
function steps($str, $n)
{
    $x = 0;
 
    // traverse through all the characters
    // in the string
    for ($i = 0; $i < strlen($str); $i++)
    {
 
        // if the x value is 0.. then
        // we must increment till n ...
        // set flag to true
        if ($x == 0)
            $flag = true;
 
        // if the x value is n-1 then
        // we must decrement till 0 ...
        // set flag as false
        if ($x == $n - 1)
            $flag = false;
 
        // print x *s
        for ($j = 0; $j < $x; $j++)
            echo "*";
 
        echo $str[$i], "\n";
 
        // checking whether to
        // increment or decrement x
        if ($flag == true)
            $x++;
        else
            $x--;
    }
}
 
// Driver Code
 
// Get the String and the number n
$n = 4;
$str = "GeeksForGeeks";
 
echo "String: ", $str, "\n";
echo "Max Length of Steps: ", $n, "\n";
 
// calling the function
steps($str, $n);
 
// This code is contributed by Ryuga
?>


Javascript




<script>
      // JavaScript program to print Step Pattern
 
      // function to print the steps
      function steps(str, n) {
        // declare a flag
        var flag;
        var x = 0;
 
        // traverse through all the characters in the string
        for (var i = 0; i < str.length; i++) {
          // if the x value is 0.. then
          // we must increment till n ...
          // set flag to true
          if (x == 0) flag = true;
 
          // if the x value is n-1 then
          // we must decrement till 0 ...
          // set flag as false
          if (x == n - 1) flag = false;
 
          // print x *s
          for (var j = 0; j < x; j++) document.write("*");
 
          document.write(str[i] + "<br>");
 
          // checking whether to
          // increment or decrement x
          if (flag == true) x++;
          else x--;
        }
      }
 
      // Get the String and the number n
      var n = 4;
      var str = "GeeksForGeeks";
      document.write("String: " + str + "<br>");
      document.write("Max Length of Steps: " + n + "<br>");
      // calling the function
      steps(str, n);
    </script>


Output

String: GeeksForGeeks
Max Length of Steps: 4
G
*e
**e
***k
**s
*F
o
*r
**G
***e
**e
*k
s

Complexity Analysis:

  • Time complexity: O(m*n) where m is the length of the string
  • Auxiliary space: O(1)


Last Updated : 14 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads