22 Patterns | Java | Python

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