@@ -29,8 +29,7 @@ public static int[] buildSuffixArray(String text) {
2929
3030 // Comparator: first by rank, then by rank + step
3131 Arrays .sort (suffixArray , (a , b ) -> {
32- if (rank [a ] != rank [b ])
33- return Integer .compare (rank [a ], rank [b ]);
32+ if (rank [a ] != rank [b ]) return Integer .compare (rank [a ], rank [b ]);
3433 int ra = (a + step < n ) ? rank [a + step ] : -1 ;
3534 int rb = (b + step < n ) ? rank [b + step ] : -1 ;
3635 return Integer .compare (ra , rb );
@@ -41,15 +40,13 @@ public static int[] buildSuffixArray(String text) {
4140 for (int i = 1 ; i < n ; i ++) {
4241 int prev = suffixArray [i - 1 ];
4342 int curr = suffixArray [i ];
44- boolean sameRank = rank [prev ] == rank [curr ] &&
45- ((prev + step < n ? rank [prev + step ] : -1 ) == (curr + step < n ? rank [curr + step ] : -1 ));
43+ boolean sameRank = rank [prev ] == rank [curr ] && ((prev + step < n ? rank [prev + step ] : -1 ) == (curr + step < n ? rank [curr + step ] : -1 ));
4644 tempRank [curr ] = sameRank ? tempRank [prev ] : tempRank [prev ] + 1 ;
4745 }
4846
4947 System .arraycopy (tempRank , 0 , rank , 0 , n );
5048
51- if (rank [suffixArray [n - 1 ]] == n - 1 )
52- break ;
49+ if (rank [suffixArray [n - 1 ]] == n - 1 ) break ;
5350 }
5451 return Arrays .stream (suffixArray ).mapToInt (Integer ::intValue ).toArray ();
5552 }
0 commit comments