关注
```
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;
}
}
```
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。
把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 去年的flag与今年的小目标 #
1831次浏览 60人参与
# 应届生应该先就业还是先择业 #
160704次浏览 809人参与
# 26年哪些行业会变好/更差 #
2728次浏览 49人参与
# 哪些公司在招寒假实习? #
1364次浏览 26人参与
# 你都用AI做什么 #
1960次浏览 57人参与
# 卷__卷不过你们,只能卷__了 #
1175次浏览 27人参与
# 有深度的简历长什么样? #
5007次浏览 92人参与
# 写论文的崩溃时刻 #
1360次浏览 31人参与
# 入职第一天 #
4093次浏览 48人参与
# 秋招你被哪家公司挂了? #
998453次浏览 7662人参与
# 这个工作能去吗 #
99465次浏览 613人参与
# 一人分享一道面试手撕题 #
7896次浏览 416人参与
# 你不能接受的企业文化有哪些 #
2532次浏览 55人参与
# 为什么国企只招应届生 #
227586次浏览 1273人参与
# 研究所VS国企,该如何选 #
236760次浏览 1965人参与
# 跳槽时有那些注意事项 #
117472次浏览 585人参与
# 小米求职进展汇总 #
997992次浏览 6501人参与
# 机械应届生薪资要多少才合适? #
35362次浏览 106人参与
# 机械人的薪资开到多少,才适合去? #
158260次浏览 553人参与
# 非技术岗薪资爆料 #
470921次浏览 3015人参与