# Poj Solution 1226

```http://poj.org/problem?id=1226

//* @author:alpc12
import java.math.*;
import java.io.*;
import java.util.*;

class Main {
public static void main(String[] args) throws Exception {
new Main().run();
}

private int n;

private void run() throws Exception {
Scanner cin = new Scanner(System.in);
int ntc = cin.nextInt(),i,j,k;
while(ntc-- != 0) {
n = cin.nextInt();
StringBuffer[] s = new StringBuffer[n];
for(i = 0; i < n; ++i) {
s[i] = new StringBuffer(cin.next());
}
int max = 0;
for(i = 0; i < s.length(); ++i) {
for(j = i+1; j <= s.length(); ++j) {
if(check(s,i,j)) {
max = Math.max(max,j-i);
}
}
}
System.out.println(max);
}
}

boolean check(StringBuffer s[], int x, int y) {
int i;
String pattern1 = s.toString().substring(x, y);
String pattern2 = "";
for(i = pattern1.length()-1; i >= 0; --i) {
pattern2 += pattern1.charAt(i);
}
for(i = 0; i < n; ++i) {
if(s[i].toString().indexOf(pattern1) == -1
&& s[i].toString().indexOf(pattern2) == -1) {
return false;
}
}
return true;
}
}
```
This entry was posted in poj. Bookmark the permalink.