```
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
Set<Character> set = new HashSet<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String[] s = new String[n];
for (int i = 0; i < n; i++) {
s[i] = sc.next();
}
Main m = new Main();
m.setSet();
for (int i = 0; i < n; i++) {
System.out.println(m.isStrong(s[i]) ? "yes" : "no");
}
}
public void setSet() {
set.add('!');
set.add('@');
set.add('#');
set.add('$');
set.add('%');
set.add('^');
set.add('&');
set.add('*');
set.add('(');
set.add(')');
set.add('_');
set.add('-');
set.add('=');
set.add('+');
set.add('[');
set.add(']');
set.add('{');
set.add('}');
set.add(',');
set.add('.');
set.add('<');
set.add('>');
set.add('/');
set.add('?');
}
public boolean isStrong(String s) {
int n = s.length();
if (n < 8) {
return false;
}
boolean f1 = false, f2 = false, f3 = false, f4 = false;
for (char c : s.toCharArray()) {
if (c <= 'Z' && c >= 'A' && !f1) {
f1 = true;
} else if (c <= 'z' && c >= 'a' && !f2) {
f2 = true;
} else if (c <= '9' && c >= '0' && !f3) {
f3 = true;
} else if (set.contains(c)) {
f4 = true;
}
}
if (!(f1 && f2 && f3 && f4)) {
return false;
}
if (n > 2) {
for (int i = 0; i < n - 2; i++) {
String sub = s.substring(i, i + 3);
if ((sub.charAt(2) - sub.charAt(1) == sub.charAt(1) - sub.charAt(0))
&& (sub.charAt(2) <= '9' && sub.charAt(2) >= '0')
&& (sub.charAt(1) <= '9' && sub.charAt(1) >= '0')
&& (sub.charAt(0) <= '9' && sub.charAt(0) >= '0')) {
return false;
}
}
}
if (n > 2) {
for (int i = 0; i < n - 2; i++) {
String sub = s.substring(i, i + 3);
if ((sub.charAt(2) - sub.charAt(1) == 1 && sub.charAt(1) - sub.charAt(0) == 1)
&& (((sub.charAt(2) <= 'Z' && sub.charAt(2) >= 'A')
&& (sub.charAt(1) <= 'Z' && sub.charAt(1) >= 'A')
&& (sub.charAt(0) <= 'Z' && sub.charAt(0) >= 'A'))
|| ((sub.charAt(2) <= 'z' && sub.charAt(2) >= 'a')
&& (sub.charAt(1) <= 'z' && sub.charAt(1) >= 'a')
&& (sub.charAt(0) <= 'z' && sub.charAt(0) >= 'a')))) {
return false;
}
}
}
if (s.indexOf("password") != -1) {
return false;
}
if (s.indexOf("admin") != -1) {
return false;
}
if (s.indexOf("qwerty") != -1) {
return false;
}
if (s.indexOf("hello") != -1) {
return false;
}
if (s.indexOf("iloveyou") != -1) {
return false;
}
if (s.indexOf("112233") != -1) {
return false;
}
return true;
}
}
```