22 Patterns | Java | Python

Chetan DattaChetan Datta
11 min read

4 Rules

  • For the outer loop, count the no of lines

  • For the inner loop, focus on the no of columns

  • Print the ‘*” inside the inner for loop

  • Observe symmetry (optional)

Pattern 1

Problem Link

public class Solution {
    public static void nForest(int n) {
        for(int i=0; i<n; i++){
            for(int j=0; j<n; j++){
                System.out.print("* ");
            }
            System.out.println("");
        }
    }
}

Python

def nForest(n:int) ->None:
    for i in range(n):
        for j in range(n):
            print("*", end=" ")
        print()

Pattern 2

Problem - Link

public class Solution {
    public static void nForest(int n) {
        for(int i=0; i<n; i++){
            for(int j=0; j<=i; j++){
                System.out.print("* ");
            }
            System.out.println(" ");
        }
    }
}
def nForest(n:int) ->None:
    for i in range(n):
        for j in range(i+1):
            print("*", end=" ")
        print()

Pattern 3

Problem - Link

public class Solution {
    public static void nTriangle(int n) {
        for(int i=0; i<n; i++){
            for(int j=0; j<=i; j++){
                System.out.print(j+1 + " ");
            }
            System.out.println("");
        }
    }
}
def nTriangle(n:int) ->None:
    for i in range(n):
        for j in range(i+1):
            print(j+1, end=" ")
        print()

Pattern 4

Problem link

public class Solution {
    public static void nTriangle(int n) {
        for(int i=0; i<n; i++){
            for(int j=0; j<=i; j++){
                System.out.print(i+1+" ");
            }
            System.out.println();
        }
    }
}
def triangle( n:int) ->None:
    for i in range(n):
        for j in range(i+1):
            print(i+1, end=" ")
        print()

Pattern 5

Problem - link

public class Solution {
    public static void seeding(int n) {
        for(int i=0; i<n; i++){
            for(int j=i; j<n; j++){
                System.out.print("* ");
            }
            System.out.println();
        }
    }
}
def seeding(n: int) -> None:
    for i in range(n):
        for j in range(i,n):
            print("*", end=" ")
        print()

Pattern 6

Problem link

public class Solution {
    public static void nNumberTriangle(int n) {
        for(int i=0; i<n; i++){
            for(int j=0; j<n-i; j++){
                System.out.print(j+1+" ");
            }
            System.out.println();
        }
    }
}
def nNumberTriangle(n: int) -> None:
    for i in range(n):
        for j in range(n-i):
            print(j+1, end=" ")
        print()

Pattern 7

Problem - link

public class Solution {
    public static void nStarTriangle(int n) {
        int lastRowStars = 2*n - 1;
        int spaces = lastRowStars/2;
        int stars = 1;

        for(int i=0; i<n; i++){
            // Print Left spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }

            // Print Middle stars
            for(int j=0; j<stars; j++){
                System.out.print("*");
            }

            // Print right spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            System.out.println();
            stars+=2;
            spaces-=1;
        }
    }
}
def nStarTriangle(n: int) -> None:
    total_last_row_stars = 2*n - 1
    # First row values
    spaces = int(total_last_row_stars/2)
    stars = 1

    for i in range(n):
        # print left - spaces
        for j in range(spaces):
            print(" ",end="")

        # print middle - stars
        for j in range(stars):
            print("*",end="")

        # print right - spaces
        for j in range(spaces):
            print(" ",end="")

        print()
        spaces-=1
        stars+=2

Pattern 8

Problem - link

public class Solution {
    public static void nStarTriangle(int n) {
        int stars = 2*n-1;
        int spaces = 0;

        for(int i=0; i<n; i++){
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            for(int j=0; j<stars; j++){
                System.out.print("*");
            }
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            System.out.println();
            spaces+=1;
            stars-=2;
        }
    }
}
def nStarTriangle(n: int) -> None:
    stars = 2*n-1
    spaces = 0

    for i in range(n):
        for j in range(spaces):
            print(" ",end="")

        for j in range(stars):
            print("*", end="")

        for j in range(spaces):
            print(" ", end="")

        print()
        stars-=2
        spaces+=1

Pattern 9

Problem - link

public class Solution {
    public static void nStarTriangleUp(int n) {
        int lastRowStars = 2*n - 1;
        int spaces = lastRowStars/2;
        int stars = 1;

        for(int i=0; i<n; i++){
            // Print Left spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }

            // Print Middle stars
            for(int j=0; j<stars; j++){
                System.out.print("*");
            }

            // Print right spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            System.out.println();
            stars+=2;
            spaces-=1;
        }
    }
    public static void nStarTriangleDown(int n) {
        int stars = 2*n-1;
        int spaces = 0;

        for(int i=0; i<n; i++){
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            for(int j=0; j<stars; j++){
                System.out.print("*");
            }
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            System.out.println();
            spaces+=1;
            stars-=2;
        }
    }
    public static void nStarDiamond(int n) {
        nStarTriangleUp(n);
        nStarTriangleDown(n);
    }
}
def nStarTriangleUp(n: int) -> None:
    total_last_row_stars = 2*n - 1
    # First row values
    spaces = int(total_last_row_stars/2)
    stars = 1

    for i in range(n):
        # print left - spaces
        for j in range(spaces):
            print(" ",end="")

        # print middle - stars
        for j in range(stars):
            print("*",end="")

        # print right - spaces
        for j in range(spaces):
            print(" ",end="")

        print()
        spaces-=1
        stars+=2
def nStarTriangleDown(n: int) -> None:
    stars = 2*n-1
    spaces = 0

    for i in range(n):
        for j in range(spaces):
            print(" ",end="")

        for j in range(stars):
            print("*", end="")

        for j in range(spaces):
            print(" ", end="")

        print()
        stars-=2
        spaces+=1

def nStarDiamond(n: int) -> None:
    # Write your code here.
    nStarTriangleUp(n)
    nStarTriangleDown(n)

Pattern 10

Problem - link

public class Solution {
    public static void nStarTriangle(int n) {

        int stars = 1;
        for(int i=0; i<n; i++){
            for(int j=0; j<stars; j++){
                System.out.print("*");

            }
            System.out.println();
            stars+=1;
        }


        stars-=2;

        for(int i=0; i<n-1; i++){
            for(int j=0; j<stars; j++){
                System.out.print("*");

            }
            System.out.println();
            stars-=1;
        }

    }
}
def nStarTriangle(n: int) -> None:
    stars = 1
    for i in range(n):
        for j in range(stars):
            print("*",end="")
        print()
        stars+=1

    stars-=2
    for i in range(n-1):
        for j in range(stars):
            print("*",end="")
        print()
        stars-=1

Pattern 11

Problem - link

public class Solution {
    public static void nBinaryTriangle(int n) {
        boolean rowFlag = true;
        for(int i=0; i<n; i++){
            boolean colFlag = rowFlag;
            for(int j=0;j<(i+1); j++){
                int val = colFlag ? 1 : 0;
                System.out.print(val+" ");
                colFlag = !colFlag;
            }
            System.out.println();
            rowFlag = !rowFlag;
        }
    }
}
def nBinaryTriangle(n: int) -> None:
    rowFlag = True
    for i in range(n):
        colFlag = rowFlag
        for j in range(i+1):
            val = int(colFlag)
            print(val,end=" ")
            colFlag = not colFlag
        print()
        rowFlag = not rowFlag

Pattern 12

Problem - link

public class Solution {
    public static void numberCrown(int n) {

        int number = 1;
        int totalLength = 2*n;
        int spaces = totalLength - 2;

        for(int i=0; i<n; i++){
            // Numbers
            for(int j=1; j<=number; j++){
                System.out.print(j+" ");
            }

            // spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }

            // Numbers in reverse
            for(int j=number; j>=1; j--){
                System.out.print(j+" ");
            }
            number+=1;
            spaces-=2;

            System.out.println();
        }
    }
}
def numberCrown(n: int) -> None:
    number = 1
    total_length = 2*n
    spaces = total_length - 2

    for i in range(n):

        #numbers
        for j in range(1, number+1):
            print(j, end=" ")

        #spaces
        for j in range(spaces):
            print(" ",end="")

        #numbers in reverse
        for j in range(number,0,-1):
            print(j,end=" ")

        print()
        number+=1
        spaces-=2

Pattern 13

Problem - link

public class Solution {
    public static void nNumberTriangle(int n) {
        int number = 1;

        for(int i=0; i<n; i++){
            for(int j=0; j<i+1; j++){
                System.out.print(number+" ");
                number+=1;
            }
            System.out.println();

        }
    }
}
def nNumberTriangle(n: int) -> None:
    number = 1

    for i in range(n):
        for j in range(i+1):
            print(number,end=" ")
            number+=1
        print()

Pattern 14

Problem - link

public class Solution {
    public static void nLetterTriangle(int n) {

        for(int i=0; i<n; i++){
            char letter = 'A';
            for(int j=0; j<i+1; j++){
                System.out.print(letter+" ");
                letter+=1;
            }
            System.out.println();
        }
    }
}
def nLetterTriangle(n: int) -> None:
    for i in range(n):
        val = ord("A")
        for j in range(i+1):
            print(chr(val), end=" ")
            val+=1
        print()

Pattern 15

Problem - link

public class Solution {
    public static void nLetterTriangle(int n) {

        for(int i=0; i<n; i++){
            char letter = 'A';
            for(int j=0; j<n-i; j++){
                System.out.print(letter+" ");
                letter+=1;
            }
            System.out.println();
        }
    }
}
def nLetterTriangle(n: int):

    for i in range(n):
        letter = ord("A")
        for j in range(n-i):
            print(chr(letter), end=" ")
            letter += 1
        print()

Pattern 16

Problem - link

public class Solution {
    public static void alphaRamp(int n) {
        char letter = 'A';
        for(int i=0; i<n; i++){
            for(int j=0; j<i+1; j++){
                System.out.print(letter+" ");
            }
            System.out.println();
            letter+=1;
        }
    }
}
def alphaRamp(n: int) -> None:
    value = ord("A")
    for i in range(n):
        for j in range(i+1):
            print(chr(value),end=" ")
        print()
        value+=1

Pattern 17

Problem - link

public class Solution {
    public static void alphaHill(int n) {

        int spaces = 2*n -1-1;
        for(int i=0; i<n; i++){
            char letter = 'A';

            // Left Spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }

            // Left letters
            for(int j=0; j<(i+1); j++){
                System.out.print(letter+" ");
                letter+=1;
            }

            letter-=2;
            // right letters
            for(int j=0; j<i; j++){
                System.out.print(letter+" ");
                letter-=1;
            }

            // right spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            System.out.println();
            spaces-=2;
        }
    }
}
def alphaHill(n: int):

    spaces = (2*n - 1) - 1;
    for i in range(n):

        letter = ord("A")

        # left spaces
        for j in range(spaces):
            print(" ",end="")

        # left letters
        for j in range(i+1):
            print(chr(letter), end=" ")
            letter+=1

        letter-=2

        # right letters
        for j in range(i):
            print(chr(letter), end=" ")
            letter-=1

        # right spaces
        for j in range(spaces):
            print(" ",end="")

        print()
        spaces-=2

Pattern 18

Problem - link

public class Solution {
    public static void alphaTriangle(int n) {
        for(int i=0; i<n; i++){
            char letter = 'A';
            letter+=(n-1);
            for(int j=0; j<i+1; j++){
                System.out.print(letter+" ");
                letter-=1;
            }
            System.out.println();
        }
    }
}
def alphaTriangle(n: int):
    for i in range(n):
        value = ord("A") + n-1
        for j in range(i+1):
            print(chr(value), end=" ")
            value-=1
        print()

Pattern 19

Problem - link

public class Solution {
    public static void symmetry(int n) {
        int spaces = 0;
        int stars = n;

        for(int i=0; i<n; i++){
            // print left stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            // print middle spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            // print right stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            stars-=1;
            spaces+=2;
            System.out.println();
        }

        stars+=1;
        spaces-=2;

        for(int i=0; i<n; i++){
            // print left stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            // print middle spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            // print right stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            stars+=1;
            spaces-=2;
            System.out.println();
        }
    }
}
def symmetry(n: int):
    stars = n
    spaces = 0

    for i in range(n):

        #left stars
        for j in range(stars):
            print("*", end=" ")

        #middle spaces
        for j in range(spaces):
            print(" ",end="")

        #right stars
        for j in range(stars):
            print("*", end=" ")

        print()
        stars-=1
        spaces+=2

    stars+=1
    spaces-=2

    for i in range(n):

        #left stars
        for j in range(stars):
            print("*", end=" ")

        #middle spaces
        for j in range(spaces):
            print(" ",end="")

        #right stars
        for j in range(stars):
            print("*", end=" ")

        print()
        stars+=1
        spaces-=2

Pattern 20

Problem - link

public class Solution {
    public static void symmetry(int n) {

        int stars = 1;
        int spaces = 2*n-2;
        for(int i=0; i<n; i++){
            // left stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            // middle spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            // right stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            System.out.println();
            stars+=1;
            spaces-=2;
        }
        stars-=2;
        spaces+=4;
        for(int i=0; i<n; i++){
            // left stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            // middle spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            // right stars
            for(int j=0; j<stars; j++){
                System.out.print("* ");
            }
            System.out.println();
            stars-=1;
            spaces+=2;
        }
    }
}
def symmetry(n: int):
    stars = 1
    spaces = 2*n - 2

    for i in range(n):
        #left stars
        for j in range(stars):
            print("*",end=" ")
        #middle spaces
        for j in range(spaces):
            print(" ",end="")
        #right stars
        for j in range(stars):
            print("*",end=" ")
        print()

        stars+=1
        spaces-=2

    stars-=2
    spaces+=4

    for i in range(n):
        #left stars
        for j in range(stars):
            print("*",end=" ")
        #middle spaces
        for j in range(spaces):
            print(" ",end="")
        #right stars
        for j in range(stars):
            print("*",end=" ")
        print()

        stars-=1
        spaces+=2

Pattern 21

Problem - link

public class Solution {
    public static void getStarPattern(int n) {
        int spaces = n-2;

        //Start line spaces
        for(int i=0; i<n; i++){
            System.out.print("*");
        }

        System.out.println();

        for(int i=0; i<n-2; i++){
            //stars
            System.out.print("*");
            //spaces
            for(int j=0; j<spaces; j++){
                System.out.print(" ");
            }
            //stars
            System.out.print("*");

            System.out.println();
        }

        //end line spaces
        if(n!=1){
            for(int i=0; i<n; i++){
                System.out.print("*");
            }
        }
    }
}
def getStarPattern(n: int) -> None:
    #start line
    for i in range(n):
        print("*",end="")
    print()

    spaces = n-2
    #Middle lines
    for i in range(n-2):
        #left stars
        print("*",end="")
        #middle spaces
        for j in range(spaces):
            print(" ",end="")
        #right stars
        print("*")

    #end line
    if n!=1:
        for i in range(n):
            print("*",end="")

Pattern 22

Problem - link

public class Solution {
    public static void getNumberPattern(int n) {
        int middle = n;
        int middleLength = 2*n-1;

        for(int i=0; i<n; i++){
            //Left elements
            for(int j=n; j>middle; j--){
                System.out.print(j);
            }
            //middle elements (All same)
            for(int j=0; j<middleLength; j++){
                System.out.print(middle);
            }
            //right elements
            for(int j=middle+1; j<n+1; j++){
                System.out.print(j);
            }
            middle-=1;
            middleLength-=2;
            System.out.println();
        }

        middle+=2;
        middleLength+=4;

        for(int i=0; i<n-1; i++){
            //Left elements
            for(int j=n; j>middle; j--){
                System.out.print(j);
            }
            //middle elements (All same)
            for(int j=0; j<middleLength; j++){
                System.out.print(middle);
            }
            //right elements
            for(int j=middle+1; j<n+1; j++){
                System.out.print(j);
            }
            middle+=1;
            middleLength+=2;
            System.out.println();
        }
    }
}
def getNumberPattern(n: int) -> None:
    middle = n
    middle_length = 2*n-1
    for i in range(n):
        # left elements (reverse)
        for j in range(n,middle,-1):
            print(j,end="")
        # middle elements (all same)
        for j in range(middle_length):
            print(middle,end="")
        # right elements
        for j in range(middle+1, n+1):
            print(j,end="")
        print()

        middle-=1
        middle_length-=2
    middle+=2
    middle_length+=4

    for i in range(n-1):
        # left elements (reverse)
        for j in range(n,middle,-1):
            print(j,end="")
        # middle elements (all same)
        for j in range(middle_length):
            print(middle,end="")
        # right elements
        for j in range(middle+1, n+1):
            print(j,end="")
        print()

        middle+=1
        middle_length+=2
0
Subscribe to my newsletter

Read articles from Chetan Datta directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Chetan Datta
Chetan Datta

I'm someone deeply engrossed in the world of software developement, and I find joy in sharing my thoughts and insights on various topics. You can explore my exclusive content here, where I meticulously document all things tech-related that spark my curiosity. Stay connected for my latest discoveries and observations.