@@ -11,61 +11,39 @@ public int getNumber(String[] board) {
11
11
table [i ][j ] = board [i ].charAt (j ) == 'W' ;
12
12
}
13
13
}
14
- int max = 0 ;
15
- for (int i = 0 ; i < table .length ; i ++) {
16
- for (int j = 0 ; j < table [0 ].length ; j ++) {
17
- int ret = minCellColumn (table , i , j );
18
- int ret2 = minCellRow (table , i , j );
19
-
20
- max = Math .max (Math .max (ret , ret2 ), max );
21
- }
22
- }
23
- return max * max ;
24
- }
25
-
26
- private int minCellRow (boolean [][] table , int i , int j ) {
27
- // ?????????????????????????????????
28
- int max = 0 ;
29
- for (int l = 0 ; l < 50 ; l ++) {
30
-
31
- for (int j2 = j ; j2 < j + l && j2 < table [0 ].length ; j2 ++) {
32
- int count = 0 ;
33
- for (int k = i ; k < i + l && k < table .length ; k ++) {
34
- if (table [k ][j2 ] == table [i ][j2 ]) {
35
- count ++;
36
- } else {
37
- break ;
14
+ for (int r = 50 ; r >= 0 ; r --) {
15
+ for (int i = 0 ; i <= table .length - r ; i ++) {
16
+ for (int j = 0 ; j <= table [0 ].length - r ; j ++) {
17
+ boolean ret = checkRow (table , i , j , r );
18
+ if (ret ) {
19
+ return r * r ;
38
20
}
39
21
}
40
- max = Math .max (max , count );
41
22
}
42
23
}
43
- return max ;
24
+ return - 1 ;
44
25
}
45
26
46
- private int minCellColumn (boolean [][] table , int i , int j ) {
47
- // ?????????????????????????????????
48
- int max = 0 ;
49
- for (int l = 1 ; l < 50 ; l ++) {
50
- for (int k = i ; k < j + l && k < table .length ; k ++) {
51
- int count = 0 ;
52
- for (int j2 = j ; k < j + l && j2 < table [0 ].length ; j2 ++) {
53
- if (table [k ][j2 ] == table [k ][j ]) {
54
- count ++;
55
- } else {
56
- break ;
57
- }
27
+ private boolean checkRow (boolean [][] table , int i , int j , int r ) {
28
+ for (int i2 = i ; i2 < i + r ; i2 ++) {
29
+ int count = 0 ;
30
+ for (int j2 = j ; j2 < j + r ; j2 ++) {
31
+ if (table [i2 ][j2 ] == table [i2 ][j ]) {
32
+ count ++;
33
+ } else {
34
+ break ;
58
35
}
59
- max = Math .max (max , count );
36
+ }
37
+ if (count != r ) {
38
+ return false ;
60
39
}
61
40
}
62
- return max ;
41
+ return true ;
63
42
}
64
43
65
44
// BEGIN KAWIGIEDIT TESTING
66
45
// Generated by KawigiEdit-pf 2.3.0
67
- private static boolean KawigiEdit_RunTest (int testNum , String [] p0 ,
68
- boolean hasAnswer , int p1 ) {
46
+ private static boolean KawigiEdit_RunTest (int testNum , String [] p0 , boolean hasAnswer , int p1 ) {
69
47
System .out .print ("Test " + testNum + ": [" + "{" );
70
48
for (int i = 0 ; p0 .length > i ; ++i ) {
71
49
if (i > 0 ) {
@@ -83,19 +61,18 @@ private static boolean KawigiEdit_RunTest(int testNum, String[] p0,
83
61
long endTime = System .currentTimeMillis ();
84
62
boolean res ;
85
63
res = true ;
86
- System .out .println ("Time: " + (endTime - startTime ) / 1000.0
87
- + " seconds" );
88
- if (hasAnswer ) {
89
- System .out .println ("Desired answer:" );
90
- System .out .println ("\t " + p1 );
91
- }
92
- System .out .println ("Your answer:" );
93
- System .out .println ("\t " + answer );
64
+ System .out .println ("Time: " + (endTime - startTime ) / 1000.0 + " seconds" );
94
65
if (hasAnswer ) {
95
66
res = answer == p1 ;
96
67
}
97
68
if (!res ) {
98
69
System .out .println ("DOESN'T MATCH!!!!" );
70
+ if (hasAnswer ) {
71
+ System .out .println ("Desired answer:" );
72
+ System .out .println ("\t " + p1 );
73
+ }
74
+ System .out .println ("Your answer:" );
75
+ System .out .println ("\t " + answer );
99
76
} else if ((endTime - startTime ) / 1000.0 >= 2 ) {
100
77
System .out .println ("FAIL the timeout" );
101
78
res = false ;
@@ -119,55 +96,48 @@ public static void main(String[] args) {
119
96
int p1 ;
120
97
121
98
// ----- test 0 -----
122
- disabled = true ;
99
+ disabled = false ;
123
100
p0 = new String [] { "BB" , "WW" };
124
101
p1 = 4 ;
125
- all_right = (disabled || KawigiEdit_RunTest (0 , p0 , true , p1 ))
126
- && all_right ;
102
+ all_right = (disabled || KawigiEdit_RunTest (0 , p0 , true , p1 )) && all_right ;
127
103
tests_disabled = tests_disabled || disabled ;
128
104
// ------------------
129
105
130
106
// ----- test 1 -----
131
- disabled = true ;
107
+ disabled = false ;
132
108
p0 = new String [] { "W" };
133
109
p1 = 1 ;
134
- all_right = (disabled || KawigiEdit_RunTest (1 , p0 , true , p1 ))
135
- && all_right ;
110
+ all_right = (disabled || KawigiEdit_RunTest (1 , p0 , true , p1 )) && all_right ;
136
111
tests_disabled = tests_disabled || disabled ;
137
112
// ------------------
138
113
139
114
// ----- test 2 -----
140
- disabled = true ;
115
+ disabled = false ;
141
116
p0 = new String [] { "WBBB" , "WBBB" , "WWWW" };
142
117
p1 = 9 ;
143
- all_right = (disabled || KawigiEdit_RunTest (2 , p0 , true , p1 ))
144
- && all_right ;
118
+ all_right = (disabled || KawigiEdit_RunTest (2 , p0 , true , p1 )) && all_right ;
145
119
tests_disabled = tests_disabled || disabled ;
146
120
// ------------------
147
121
148
122
// ----- test 3 -----
149
- disabled = true ;
123
+ disabled = false ;
150
124
p0 = new String [] { "W" , "B" , "W" , "W" , "W" };
151
125
p1 = 1 ;
152
- all_right = (disabled || KawigiEdit_RunTest (3 , p0 , true , p1 ))
153
- && all_right ;
126
+ all_right = (disabled || KawigiEdit_RunTest (3 , p0 , true , p1 )) && all_right ;
154
127
tests_disabled = tests_disabled || disabled ;
155
128
// ------------------
156
129
157
130
// ----- test 4 -----
158
131
disabled = false ;
159
- p0 = new String [] { "BWBBWBB" , "WWBWWBW" , "BBBBBBW" , "WBBBBWB" ,
160
- "BBWWWWB" , "WWWWWWW" , "BBWWBBB" };
132
+ p0 = new String [] { "BWBBWBB" , "WWBWWBW" , "BBBBBBW" , "WBBBBWB" , "BBWWWWB" , "WWWWWWW" , "BBWWBBB" };
161
133
p1 = 9 ;
162
- all_right = (disabled || KawigiEdit_RunTest (4 , p0 , true , p1 ))
163
- && all_right ;
134
+ all_right = (disabled || KawigiEdit_RunTest (4 , p0 , true , p1 )) && all_right ;
164
135
tests_disabled = tests_disabled || disabled ;
165
136
// ------------------
166
137
167
138
if (all_right ) {
168
139
if (tests_disabled ) {
169
- System .out
170
- .println ("You're a stud (but some test cases were disabled)!" );
140
+ System .out .println ("You're a stud (but some test cases were disabled)!" );
171
141
} else {
172
142
System .out .println ("You're a stud (at least on given cases)!" );
173
143
}
0 commit comments