Rất khó để nhớ mật khẩu của tôi, vì vậy tôi đã nghĩ ra cách tạo mật khẩu.
Cách tôi tạo mật khẩu của mình là từ một từ hoặc một câu, làm theo các bước sau:
Bắt đầu từ trái sang phải
Tìm số lượng của mỗi chữ cái
Đặt thư với số lượng của nó theo thứ tự
Thư có độ lặp lại cao hơn sẽ ở cuối
Các chữ cái có cùng độ lặp lại sẽ được sắp xếp theo thứ tự abc
Các số và chữ cái đặc biệt sẽ bị bỏ qua bao gồm khoảng trắng (ví dụ: 9, 4, @, (, *, v.v.) bị bỏ qua)
Nhóm chữ bỏ qua trường hợp. Trong đầu ra, sử dụng trường hợp xảy ra lần cuối trong đầu vào
- Số lượng của chữ cái có thể là bất kỳ số nào, ví dụ 5H17M345K
- Nếu đầu vào là tất cả các số hoặc chữ cái đặc biệt thì đầu ra sẽ là chuỗi rỗng, ví dụ: Đầu vào "12 $ * 34 ^!" sau đó xuất ""
- khi thứ tự cho cùng một trường hợp theo thứ tự chữ cái không quan trọng, ví dụ 1a1B1c
Thí dụ:
Input: Kitkat Tango
(2k / 1i / 3T / 2a / 1n / 1g / 1o)
Output: 1g1i1n1o2a2k3T
Một vi dụ khac:
Input: Database Partitions Task
(1D / 5a / 4T / 1b / 3s / 1e / 1P / 1r / 2i / 1o / 1n / 3s / 1k)
Output: 1b1D1e1k1n1o1P1r2i3s4T5a
Lưu ý: các chữ cái có 1 lặp lại được bắt đầu theo thứ tự bảng chữ cái sau đó các chữ cái có nhiều đại diện hơn
Đây là code-golf , mã ngắn nhất sẽ thắng.
1.
thêm ít nhất 1 trường hợp thử nghiệm bao gồm hơn 9 lần xuất hiện của một hoặc nhiều chữ cái, 2.
xác định rằng đầu ra phải là một chuỗi (mặc dù tôi thực sự khuyên bạn không nên nghiêm ngặt; ), 3.
xác định rằng chúng ta phải có khả năng xử lý các đầu vào không chứa chữ cái và 4.
làm rõ xem chúng ta có cần xử lý một chuỗi trống làm đầu vào hay không.
1
. Ngoài ra, trong tương lai, bạn có thể cân nhắc sử dụng Hộp cát của chúng tôi để cố gắng giải quyết các vấn đề như thế này trước khi đăng một thử thách.