PASSW - Mật khẩu an toàn
Xem dạng PDFHiện nay, với sự bùng nổ của công nghệ thông tin, mỗi cá nhân đều có cho mình một số tài khoản (tài khoản facebook, tài khoản e-mail, tài khoản twitter…). Các tài khoản này đều cần được bảo vệ bằng các mật khẩu. Một vấn đề quan trọng là cần chọn được các mật khẩu “an toàn” để tránh bị đánh cắp tài khoản.
Giả sử mỗi mật khẩu là một chuỗi ký tự khác rỗng chỉ gồm các chữ cái la-tinh in hoa ( A … Z ), in thường ( a … z ) và chữ số ( 0.. 9 ). Ta đánh giá độ “an toàn” của mật khẩu bởi hai tiêu chí:
- Độ dài (số ký tự): là một số nguyên trong phạm vi từ ~0..5~: Nếu mật khẩu có độ dài là m thì độ an toàn là: ~\min(5, \max(m – 5, 0))~
- Loại ký tự (hoa, thường, số):
- Nếu chỉ có một loại ký tự: ~1~
- Có đúng hai loại ký tự: ~2~
- Có đủ ~3~ loại ký tự: ~5~
Độ an toàn của mật khẩu là tổng của hai tiêu chí trên.
Ví dụ: mật khẩu là Abcd123456 có độ an toàn là: ~5~ (độ dài) + ~5~ (loại ký tự) = ~10~.
Bạn được cho một danh sách các mật khẩu, hãy viết chương trình để đánh giá “độ an toàn” của các mật khẩu đó.
Input
- Dòng đầu chứa số nguyên dương ~n~ là số mật khẩu cần đánh giá.
- ~n~ dòng tiếp theo, mỗi dòng chứa một mật khẩu là xâu ký tự khác rỗng, chỉ chứa các ký tự la-tinh in hoa (
A…Z), in thường (a…z) và chữ số (0..9), độ dài không quá ~15~ ký tự.
Giới hạn:
- ~1 ≤ n ≤ 100~.
Output
Ghi trên một dòng ~n~ số nguyên là độ an toàn của ~n~ mật khẩu (theo đúng thứ tự), hai số liên tiếp ghi cách nhau một dấu cách.
Sample
Input #1
4
Password
security
A1234
Abcd123456
Output #1
5 4 2 10
Problem source: Chuyên Sơn La Online Judge
Bình luận
ý tưởng: khai báo biến, nhập dữ liệu theo yêu cầu đề bài duyệt qua xâu, kiểm tra xem nó có thuộc những nhóm kí tự: in hoa, thường, số hay không sau đó nhét 3 giá trị vào vector, duyệt vector để đếm những ký tự đó xuất hiện bn lần, nếu số lần xuất hiện >0 thì t++; kiểm tra t, nếu t==1 thì d+=1, t==2 thì d+=2, t==3 thì d+=5; nhớ là hãy cộng cả độ dài dãy bạn đầu và khai báo hoặc đặt lại giá trị của biến đếm =0 sau mỗi xâu mật khẩu nhé
include <bits/stdc++.h>
using namespace std ; int main () { int n ; cin >> n ;
}
include <bits/stdc++.h>
using namespace std;
int main() { ios::syncwithstdio(false); cin.tie(nullptr);
}
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
có bộ test dài hơn 15 kí tự nhé.