2 Commits
4 changed files with 47 additions and 66 deletions
+2 -2
View File
@@ -8,7 +8,7 @@ Follow these steps to set up your project:
### 0. Watch the introductory video
We have recorded a special video, explaining the exact steps that needs to be taken to complete this assignment.
Here is the [link](https://drive.meshcomp.ir/d/c9138977a329485585ae/)
Here is the [link]()
**Make sure to watch the video before starting the assignment.**
@@ -226,7 +226,7 @@ Before starting, ensure you have:
## Getting Help
- **Mentor contact**
- **Mentor contact:** Available during office hours and via [specify platform]
- **Git documentation:** https://docs.meshcomp.ir/git
---
+4 -21
View File
@@ -7,17 +7,6 @@ public class BonusExercises {
/*
complete the method below, so it will validate an email address
1. Must have exactly one @ (no more, no less)
2. Split into local-part and domain (before @ and after @)
3. Local-part rules:
- Can't be empty
- Can't start or end with dot
- Can't have two dots in a row
4. Domain rules:
- Can't be empty
- Can't start or end with hyphen
- Can't have underscores
- Each segment (between dots) must follow same hyphen rules
*/
public boolean validateEmail(String email) {
String regex = ""; // todo
@@ -28,16 +17,10 @@ public class BonusExercises {
}
/*
This method should find and return the first date in a string.
Supported formats:
- American: MM/DD/YYYY (e.g., 12/09/2023)
- British: DD/MM/YYYY (e.g., 12/09/2023 — same pattern, context matters)
- ISO: YYYY-MM-DD (e.g., 2024-07-15)
- Slash variant: YYYY/MM/DD (e.g., 2025/01/01)
If no match for a date is found in the string, return null.
*/
this method should find a date in string
note that it should be in british or american format
if there's no match for a date, return null
*/
public String findDate(String string) {
// todo
return null;
+29 -39
View File
@@ -19,47 +19,41 @@ public class MainExercises
the output has to be a two-dimensional array of characters, so don't just print the triangle!
*/
public char[][] generateTriangle(int n) {
char[][] triangle = new char[n][];
for(int i = 0; i < n; i++)
{
triangle[i] = new char[i+1];
for(int j = 0; j <= i; j++)
{
if(i == 0 || j == 0 || i == j || i == n-1)
triangle[i][j] = '*';
else
triangle[i][j] = ' ';
}
// todo
return null;
}
return triangle;
}
/*
SPIRAL TRAVERSAL OF A RECTANGULAR MATRIX
given a matrix of random integers, you should do spiral traversal in it
e.g. if the matrix is as shown below:
1 2 3
4 5 6
7 8 9
then the spiral traversal of that is:
{1, 2, 3, 6, 9, 8, 7, 4, 5}
Given a rectangular matrix (2D array) of integers, this method traverses
it in a spiral order (clockwise from outside to inside) and returns
the elements as a 1D array.
so you should walk in that matrix in a curl and then add the numbers in order you've seen them in a 1D array
*/
public int[] spiralTraversal(int[][] values, int rows, int cols) {
EXAMPLE:
Input matrix:
1 2 3
4 5 6
7 8 9
Spiral order: start at top-left (1), go right →, then down ↓,
then left ←, then up ↑, then repeat inward.
Result: {1, 2, 3, 6, 9, 8, 7, 4, 5}
so you should walk in that matrix in a curl and then add the numbers in order you've seen them in a 1D array
RECTANGULAR MATRIX ASSUMPTION:
This method assumes the input matrix is RECTANGULAR (all rows have
the same number of columns). In Java, we can verify this because
2D arrays might be jagged (rows of different lengths).
IMPORTANT: In Java, we do NOT need to pass rows and cols!
The 2D array 'matrix' knows its own dimensions:
- Number of rows: matrix.length
- Number of columns: matrix[0].length (if rectangular)
*/
public int[] spiralTraversal(int[][] matrix) {
// todo
return null;
}
/*
@@ -78,18 +72,14 @@ public class MainExercises
2, 1, 1
1, 1, 1, 1
Note: As you can see in the examples, we want to generate distinct partitions,
which means 1,2 and 2,1 are not different — they count as the same combination.
note: as you can see in examples, we want to generate distinct summations, which means 1, 2 and 2, 1 are no different
you should generate all partitions of the input number and
You should generate all partitions of the input number.
hint: you can measure the size and order of arrays by finding the pattern of partitions and their number
trust me, that one's fun and easy :)
Hint: You can determine the size and order of the arrays by finding the pattern
of partitions and their count. Trust me, this one's fun and easy :)
If you're familiar with Lists and ArrayLists, you can also edit the method's
body to use them instead of arrays.
if you're familiar with lists and arraylists, you can also edit method's body to use them instead of array
*/
public int[][] intPartitions(int n) {
// todo
return null;
+12 -4
View File
@@ -16,8 +16,10 @@ public class MainTestTraversal {
int[][] nums = {
{1, 2, 3, 4, 5}
};
int rows = 1;
int cols = 5;
int[] expected = {1, 2, 3, 4, 5};
assertArrayEquals(expected, ex.spiralTraversal(nums));
assertArrayEquals(expected, ex.spiralTraversal(nums, rows, cols));
}
@Test
@@ -28,8 +30,10 @@ public class MainTestTraversal {
{7, 8, 9},
{10, 11, 12}
};
int rows = 4;
int cols = 3;
int[] expected = {1, 2, 3, 6, 9, 12, 11, 10, 7, 4, 5, 8};
assertArrayEquals(expected, ex.spiralTraversal(nums));
assertArrayEquals(expected, ex.spiralTraversal(nums, rows, cols));
}
@Test
@@ -38,8 +42,10 @@ public class MainTestTraversal {
{1, 2, 3, 4},
{5, 6, 7, 8}
};
int rows = 2;
int cols = 4;
int[] expected = {1, 2, 3, 4, 8, 7, 6, 5};
assertArrayEquals(expected, ex.spiralTraversal(nums));
assertArrayEquals(expected, ex.spiralTraversal(nums, rows, cols));
}
@Test
@@ -51,8 +57,10 @@ public class MainTestTraversal {
{19, 20, 21, 22, 23, 24},
{25, 26, 27, 28, 29, 30}
};
int rows = 5;
int cols = 6;
int[] expected = {1, 2, 3, 4, 5, 6, 12, 18, 24, 30, 29, 28, 27, 26, 25, 19, 13, 7, 8, 9, 10, 11, 17, 23, 22, 21,
20, 14, 15, 16};
assertArrayEquals(expected, ex.spiralTraversal(nums));
assertArrayEquals(expected, ex.spiralTraversal(nums, rows, cols));
}
}