Ôn luyện 20/09/2024
Điểm: 100
Con số duyên nợ là con số có chữ số đầu và chữ số cuối giống nhau.
Viết chương trình kiểm tra xem một số nguyên dương ~n~ ghi trong hệ thập phân có chữ số đầu và chữ số cuối giống nhau không?
Input
- Gồm nhiều dòng, mỗi dòng chứa một số nguyên dương ~n~ ghi ở hệ thập phân.
Giới hạn:
- ~1≤n≤10^{18}~
Output
- Ứng với mỗi số nguyên dương ~n~, ghi ra trên một dòng là
YES
nếu số ~n~ tương ứng có chữ số đầu và chữ số cuối giống nhau,NO
nếu ngược lại.
Sample
Input #1
12345
123541
Output #1
NO
YES
Problem source: Chuyên Sơn La Online Judge
Điểm: 100
Cho một chuỗi ~str~ bao gồm các ký tự a-z, A-Z và khoảng trắng. Nhiệm vụ của bạn là viết chương trình chuyển chuỗi này về dạng viết thường.
Input
- Một chuỗi ~str~ có độ dài không quá 1000
Output
- Chuỗi ~str~ ở dạng viết thường
Sample
Input #1
Lap Trinh Khong Kho
Output #1
lap trinh khong kho
Điểm: 100
Cho một chuỗi ký tự chỉ gồm các ký tự chữ cái latinh, chữ số và dấu cách. Một khoảng trống là một đoạn liên tiếp các ký tự trống (dấu cách) có trong chuỗi. Hãy đếm số lượng khoảng trống trong chuỗi đó.
Input
- Dòng đầu chứa số nguyên dương ~T~ là số chuỗi;
- ~T~ dòng tiếp theo, mỗi dòng chứa một chuỗi có độ dài không quá ~1000~ ký tự
Giới hạn:
- ~1 ≤ T ≤ 100~.
Output
- Gồm ~T~ dòng, mỗi dòng là một số nguyên là số khoảng trống của chuỗi đầu vào.
Sample
Input #1
2
abc xyz ab
abc def ghi
Output #1
2
3
Problem source: Chuyên Sơn La Online Judge
Điểm: 100
Cho xâu ký tự ~s~ chỉ gồm các ký tự chữ cái latinh và dấu cách, hãy chuẩn hóa xâu ~s~ (tức là xóa hết các dấu cách thừa trong xâu: các dấu cách ở hai đầu, hai từ liên tiếp trong xâu chỉ cách nhau duy nhất một dấu cách).
Input
- Dòng đầu chứa số nguyên dương ~T~ là số chuỗi;
- ~T~ dòng tiếp theo, mỗi dòng chứa một chuỗi có độ dài không quá ~1000~ ký tự.
Giới hạn:
- ~1 ≤ T ≤ 100~.
Output
- Gồm ~T~ dòng, mỗi dòng là một xâu đã chuẩn hóa.
Sample
Input #1
2
abc xyz ab
abc def ghi
Output #1
abc xyz ab
abc def ghi
Problem source: Chuyên Sơn La Online Judge
Điểm: 100
Tèo có một con Robot đồ chơi rất thông minh, nó rất hứng thú với bộ đồ chơi chữ cái của Tèo.
Tèo cho Robot chơi trò chơi như sau: Tèo xếp các chữ cái trong bộ đồ chơi của mình thành một hàng dọc, Robot sẽ đi từ đầu hàng đến cuối hàng, mỗi khi đi đến một chữ cái, nếu Robot chưa nhặt được loại chữ cái đó thì nó sẽ nhặt, nếu đã nhặt rồi thì nó bỏ qua.
Cho biết hàng chữ cái Tèo xếp ban đầu, bạn hãy cho biết xâu chữ cái (theo đúng thứ tự) mà Robot sẽ nhặt
Input
- Một dòng duy nhất chứa xâu ký tự chỉ gồm các chữ cái la-tinh (‘A’-‘Z’, ‘a’-‘z’) mô tả hàng chữ cái Tèo xếp bạn đầu.
Giới hạn:
- Độ dài xâu ký tự đầu vào không quá ~10^5~.
Output
- Một dòng duy nhất chứa xâu ký tự mô tả xâu chữ cái mà Robot sẽ nhặt.
Sample
Input #1
ABABACD
Output #1
ABCD
Problem source: Chuyên Sơn La Online Judge
Điểm: 100
Hiệ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
Điểm: 100
Hiệ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 có biện pháp bảo vệ các mật khẩu đó “an toàn” để tránh bị đánh cắp tài khoản.
Tèo luôn chọn cho mình những mật khẩu gồm một số chữ cái la-tinh đứng đầu (không quá ~10~ chữ cái) và đem ghép vào cuối một số nguyên dương trong hệ thập phân (không quá ~6~ chữ số). Ví dụ: Abcd12
. Sau đó Tèo mã hóa mật khẩu bằng cách tách phần số ở cuối, giữ lại phần chữ cái ở đầu và đem chèn vào giữa các chữ cái đó (có thể cả ở đầu và ở cuối) một số chữ số từ ~0~ đến ~9~ sao cho tổng các chữ số được chèn đúng bằng số ở cuối của mật khẩu. Ví dụ: A1b23c4d2
là một cách mã hóa của mật khẩu Abcd12
(các chữ số được dùng để chèn là ~1 + 2 + 3 + 4 + 2 = 12~).
Bạn hãy giúp Tèo viết một chương trình giải mã mật khẩu nhé?
Input
- Một dòng duy nhất chứa xâu ký tự mật khẩu đã mã hóa chỉ gồm các chữ cái la-tinh và chữ số.
Giới hạn:
- Độ dài xâu mã hóa không quá ~10^5~ ký tự trong đó có chứa ít nhất một chữ cái la-tinh và ít nhất một chữ số khác ~0~.
Output
- Ghi ra một dòng duy nhất là mật khẩu giải mã được.
Sample
Input #1
A1b23c4d2
Output #1
Abcd12
Problem source: Chuyên Sơn La Online Judge
Điểm: 100
Cho một danh sách gồm ~n~ tên riêng, mỗi tên riêng gồm một hoặc nhiều từ được tạo bởi các kí tựlatin. Giữa các từ có ít nhất một kí tự khoảng trắng, và có thể có kí tự khoảng trắng ở đầu hoặc cuối tên riêng. Nhiệm vụ của bạn là chuẩn hoá các tên riêng này về đúng định dạng.
Một tên riêng được gọi là đúng định dạng nếu thoả các điều kiện sau:
- Giữa các từ có đúng một kí tự khoảng trắng và không có kí tự khoảng trắng nào ở đầu hoặc cuối tên riêng.
- Với mỗi từ trong tên riêng, kí tự đầu tiên của từ được in hoa và các kí tự còn lại của từ được in thường.
Ví dụ:
- “Viet Nam”, “Ha Noi”, “Hue”, “Ho Chi Minh”, “Can Tho” là các tên riêng đúng định dạng.
- “viet nam”, “HA NOI”, “hUE”, “Ho Chi Minh”, “ Can Tho ” là các tên riêng chưa đúngđịnh dạng.
Input
- Dòng đầu tiên gồm số nguyên dương ~n (1 ≤ n ≤ 1000)~ - số tên riêng trong danh sách
- ~n~ dòng tiếp theo, mỗi dòng gồm một xâu chứa không quá 50 kí tự - mô tả một tên riêng.
Output
- In ra các tên riêng sau khi đã được chuẩn hoá, mỗi tên riêng nằm trên một dòng.
Sample
Input #1
6
viet nam
HA NOI
hUE
Ho Chi Minh
Can Tho
Free Contest
Output #1
Viet Nam
Ha Noi
Hue
Ho Chi Minh
Can Tho
Free Contest
Problem source: Kc97ble - Free Contest
Điểm: 100
Dr. Patel đang thực hiện bài phỏng vấn cho công ty Gooogle. Bài phỏng vấn của Dr. Patel như sau:
Cho một xâu ký tự ~S~ có độ dài ~N~. Yêu cầu tìm xâu con liên tiếp có kí tự giống nhau dài nhất trong xâu ký tự ~S~.
Input
- Dòng đầu tiên chứa 1 số ~T~ là số bộ test ~(1 \leq T \leq 100)~.
- Với mỗi bộ test, gồm 2 dòng, dòng đầu tiên là số nguyên ~N~ ~(1 \leq N \leq 10^5)~ và một xâu ký tự ~S~ chỉ gồm các ký tự in hoa.
Output
- Gồm ~T~ dòng là kết quả cho từng test. Giống như định dạng của sample.
Sample
Input #1
3
9
BBCCZZZZO
17
GGOOOOOOOOOGLEEEE
1
G
Output #1
Case #1: 4
Case #2: 9
Case #3: 1
Giải thích #1
Chẳng hạn BBCCZZZZO
có Z
gồm 4 ký tự gần nhau nhiều nhất nên in ra ~4~, tương tự với GGOOOOOOOOOGLEEEE
có 9 chữ O
gần nhau nhiều nhất nên in ra ~9~.
Điểm: 100
Cho 2 dãy nhị phân ~A~ và ~B~. Hãy thực hiện phép ~A\ xor\ B~ ( phép ~xor~ tương đương với toán tử ^
trong một số các ngôn ngữ lập trình ) và in ra kết quả của phép ~xor~ đó.
Input
- 1 dòng gồm 2 dãy nhị phân ~A~ và ~B~.
Biết rằng
- ~1 \leq |A|, |B| \leq 50~ (với ~|A|~ là độ dài của dãy nhị phân ~A~, ~|B|~ là độ dài của dãy nhị phân ~B~)
- ~|A| = |B|~
Output
- 1 dòng là kết quả của phép ~A\ xor\ B~ (nếu kết quả có chữ số không đứng đầu, hãy loại bỏ nó).
Sample
Input #1
1010 1100
Output #1
110