-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGridChallenge.java
More file actions
120 lines (99 loc) · 3.5 KB
/
GridChallenge.java
File metadata and controls
120 lines (99 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// I am still working on it, it gives me errors when I run it.
/*
Problem Statement: Grid Challenge
You are given a square grid of characters where each character is a lowercase letter in the range a-z.
Your task is to rearrange the elements of each row in alphabetical order and then determine
if the columns are also sorted in alphabetical order from top to bottom.
Input
grid: A list of n strings, where each string represents a row of the grid,
and n is the number of rows (and columns, since it's a square grid).
Output
Return "YES" if after sorting each row alphabetically, the columns are
also sorted alphabetically from top to bottom. Otherwise, return "NO".
Constraints
Each string in the grid consists of lowercase letters (a-z).
The grid is always a square grid (i.e., it has the same number of rows and columns).
*/
import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.function.*;
import java.util.regex.*;
import java.util.stream.*;
import static java.util.stream.Collectors.joining;
import static java.util.stream.Collectors.toList;
class Result
{
/*
* Complete the 'gridChallenge' function below.
*
* The function is expected to return a STRING.
* The function accepts STRING_ARRAY grid as parameter.
*/
public static String gridChallenge(List<String> grid)
{
// Write your code here
int gridN = grid.size();
for(int i = 0; i < gridN; i++)
{
char[] gridArrays = grid.get(i).toCharArray();
Arrays.sort(gridArrays);
grid.set(i, new String(gridArrays));
}
for(int j = 0; j < grid.get(0).length(); j++) // j = columns
{
for(int k = 1; k < gridN; k++) // k = rows
{
if(grid.get(k).charAt(j) < grid.get(k - 1).charAt(j))
{
return "NO";
}
/* else
{
return "YES";
}*/
}
}
return "YES";
}
}
public class Solution
{
public static void main(String[] args) throws IOException
{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(System.getenv("OUTPUT_PATH")));
int t = Integer.parseInt(bufferedReader.readLine().trim());
IntStream.range(0, t).forEach(tItr ->
{
try
{
int n = Integer.parseInt(bufferedReader.readLine().trim());
List<String> grid = IntStream.range(0, n).mapToObj(i ->
{
try
{
return bufferedReader.readLine();
}
catch (IOException ex)
{
throw new RuntimeException(ex);
}
})
.collect(toList());
String result = Result.gridChallenge(grid);
bufferedWriter.write(result);
bufferedWriter.newLine();
}
catch (IOException ex)
{
throw new RuntimeException(ex);
}
});
bufferedReader.close();
bufferedWriter.close();
}
}