Chuỗi (xâu) ký tự nâng cao - OLP2026
Đếm tần suất số nguyên tố
Nộp bàiPoint: 1
Cho một số nguyên N, hãy đếm xem mỗi chữ số nguyên tố (2, 3, 5, 7) trong N xuất hiện bao nhiêu lần và in ra theo thứ tự xuất hiện trong N, nếu chữ số nào không xuất hiện thì không in
Đầu vào: Dòng duy nhất chứa số nguyên N
Giới hạn: 0 <= N <= 10^64
Đầu ra: In ra các chữ số nguyên tố kèm theo số lần xuất hiện của nó
Ví dụ:
Input:
333377226668888999
Output:
3 4
7 2
2 2
Tìm chỉ số từ xuất hiện trong xâu
Nộp bàiPoint: 1
Nhập vào một xâu ký tự và từ cần tìm, tìm từ đó xem có trong xâu hay không, nếu có in ra chỉ số của từ đầu tiên tìm được, nếu không in ra -1
Input 01:
hoc cong nghe day hoc lap trinh
hoc
Dòng trên là xâu gốc
Dòng dưới là từ cần tìm
Output 01:
0
Chỉ số 0 là chỉ số đầu tiên xuất hiện chữ hoc
Input 02:
hoc cong nghe day hoc lap trinh
python
Output 02:
-1
Kiểm tra xem xâu ký tự là chữ thường
Nộp bàiPoint: 1
Nhập vào một xâu ký (chỉ toàn các ký tự chữ), kiểm tra xem xâu ký tự đó chỉ bao gồm các ký tự in thường hay không? Nếu đúng in ra True, nếu không đúng in ra False
Input 01:
hoccongnghe
Output 01:
True
Input 02:
HocCongNghe
Output 02:
False
Đếm từ xuất hiện trong xâu
Nộp bàiPoint: 1
Nhập vào một xâu ký tự và từ cần tìm, tìm từ đó xem có trong xâu hay không, nếu có in ra số lượng từ tìm được, nếu không in ra 0
Input 01:
hoc cong nghe day hoc lap trinh
hoc
Dòng trên là xâu gốc
Dòng dưới là từ cần tìm
Output 01:
2
Input 02:
hoc cong nghe day hoc lap trinh
python
Output 02:
0
Kiểm tra các ký tự trong xâu là chữ cái
Nộp bàiPoint: 1
Nhập vào một xâu ký, kiểm tra xem xâu ký tự đó chỉ bao gồm các ký tự chữ hay không? Nếu đúng in ra True, nếu không đúng in ra False
Input 01:
hoccongnghe
Output 01:
True
Input 02:
Hoc Cong Nghe
Output 02:
False
Input 02:
HocCongNghe123
Output 02:
False
Kiểm tra chuỗi ký tự chỉ bao gồm các ký tự số
Nộp bàiPoint: 1
Nhập vào một xâu ký tự, kiểm tra xem xâu ký tự đó có phải là xâu ký tự số hay không, nếu đúng in ra True, nếu sai in ra False
Input 01:
0123456
Output 01:
True
Input 02:
123456a
Output 02:
False
Chuyển xâu sang in thường
Nộp bàiPoint: 1
Nhập vào một xâu ký tự in hoa (chỉ bao gồm các ký tự chữ cái), sau đó chuyển xâu ký tự sang in thường
Input 01:
HOCCONGNGHE
Output 01:
hoccongnghe
Input 02:
Hoc Cong Nghe
Output 02:
hoc cong nghe
Chuyển xâu sang in hoa
Nộp bàiPoint: 1
Nhập vào một xâu ký tự in thường (chỉ bao gồm các ký tự chữ cái), sau đó chuyển xâu ký tự sang in hoa
Input 01:
hoccongnghe
Output 01:
HOCCONGNGHE
Input 02:
Hoc Cong Nghe
Output 02:
HOC CONG NGHE
Thay thế ký tự
Nộp bàiPoint: 1
Cho một xâu S có các từ được phân cách bởi các dấu chấm . dấu phảy , dấu chấm than ! và dấu ?. Hãy thay thế tất cả các dấu đó bằng dấu cách và đếm xem có bao nhiêu từ trong xâu s đó (mỗi từ được phân cách bởi dấu cách)
Input 01:
I?LOVE YOU
Output 01:
I LOVE YOU 3
Giải thích: Xâu trên có 3 từ
Input 02:
hoc.cong?nghe!that tuyet,voi
Output 02:
hoc cong nghe that tuyet voi 6
In ra ký tự cuối cùng trong mỗi từ
Nộp bàiPoint: 1
Nhập vào một xâu ký tự, hãy in ra tất cả các ký tự cuối cùng trong mỗi từ của xâu đó. Ví dụ chữ "hoc cong nghe" thì in ra chữ "c g e"
Lưu ý ký tự đầu tiên không được là ký tự cách
Input 01:
lap trinh Python
Output 01:
p h n
Input 02:
HOC CONG NGHE
Output 02:
C G E
Xác định chữ số đứng giữa của N (xâu ký tự cơ bản)
Nộp bàiPoint: 1
Cho số nguyên không âm N, xác định chữ số đứng giữa của N, trong trường hợp N không có chữ số đứng giữa thì in ra NOT FOUND
Ví dụ N = 12346 thì số đứng giữa là 3, N = 2214 thì không có chữ số đứng giữa.
Ràng buộc ~0 < N \leq 10^{64}~
Input 01:
12345
Output 01:
3
Input 02:
1234
Output 02:
NOT FOUND
Số đẹp 2
Nộp bàiPoint: 1
Một số được coi là số đẹp nếu nó có các chữ số không giảm từ trái qua phải hoặc không tăng từ trái qua phải, ví dụ số 1233333345 là số không giảm, số 5555555543 là số không tăng. Hãy viết chương trình kiểm tra số nguyên dương N cho trước có phải là số đẹp hay không? Nếu là số đẹp in ra YES, ngược lại in ra NO.
Ràng buộc : ~0 \leq N \leq 10^{64}~
Input 01:
1233333345
Ouput 01:
YES
Input 02:
5555555543
Ouput 02:
YES
Input 03:
12343
Ouput 03:
NO
Xâu nhị phân và chuyển đổi sang thập phân
Nộp bàiPoint: 1
Nhập vào một xâu Str (không chứa cách) có độ dài tối đa 60 ký tự. Kiểm tra xem Str có phải là xâu nhị phân (xâu nhị phân là xâu toàn 0, 1) hay không. Nếu có thì chuyển xâu này sang số thập phân. In kết quả số thập phân trên màn hình. Không phải thì in ra NO
Input 01:
1111
Output 01:
15
Input 02:
1112
Output 02:
NO
Input 03:
111111111111111111111111111111111111111111111111
Output 03:
281474976710655
Đếm các ký tự không phải là số và chữ cái trong xâu
Nộp bàiPoint: 1
Nhập từ bàn phím một xâu ký tự Str, đếm số các ký tự không phải là số, không phải là chữ cái tiếng Anh trong xâu Str.
Input:
Hoc Cong Nghe 123???
Output:
6
Giải thích: Chuỗi trên có 3 dấu cách và 3 dấu ?, tổng bằng 6
Kiểm tra xâu đối xứng
Nộp bàiPoint: 1
Xây dựng hàm kiểm tra một xâu S nhập từ bàn phím có đối xứng không (xâu đối xứng là xâu khi chúng ta đảo ngược lại thì vẫn là xâu đó), ví dụ MADAM là xâu đối xứng, ABC không phải là xâu đối xứng.
Lưu ý: Xâu S nhập chữ thường không có cách, nếu là xâu đối xứng in ra YES, ngược lại in ra NO
Input 01:
madam
Output 01:
YES
Input 02:
ABC
Output 02:
NO
Trộn xâu ký tự
Nộp bàiPoint: 1
Xây dựng hàm trộn 2 xâu ký tự S1 và S2 nhập từ bàn phím thành một xâu (lưu ý 2 xâu này không được chứa ký tự cách), ví dụ chuỗi S1 là ABCD, chuỗi S2 là EFGH thì sau khi trộn sẽ là AEBFCGDH
Input 01:
ABCD
EFGH
Output 01:
AEBFCGDH
Input 02:
ABCDABC
EFGH
Output 02:
AEBFCGDHABC
Input 03:
ABCD
EFGHABC
Output 03:
AEBFCGDHABC
Tìm chữ "học" trong xâu
Nộp bàiPoint: 1
Xây dựng chương trình tìm chữ "hoc" trong một xâu và in ra số lượng chữ "hoc" tìm được (lưu ý không phân biệt chữ hoa chữ thường), ví dụ xâu "hoc cong nghe day hoc cong nghe" sẽ có 2 chữ "hoc".
Input 01:
hoc cong nghe
Output 01:
1
Input 02:
Hoc cong nghe Day HOC lap trinh
Output 02:
2
Đảo ngược một xâu
Nộp bàiPoint: 1
Xây dựng hàm đảo ngược 1 xâu S nhập từ ban phím (không chứa ký tự cách), ví dụ xâu ban đầu là ABCD thì sau khi đảo ngược sẽ là DCBA
Input 01:
AbCd
Output 01:
dCbA
Input 02:
anhyeuem
Output 02:
meueyhna
Đếm số lượng là nguyên âm, phụ âm trong một xâu ký tự
Nộp bàiPoint: 1
Xây dựng chương trình nhập vào một chuỗi S chỉ gồm các ký tự chữ và không chứa dấu cách, sau đó đếm số lượng ký tự là Nguyên âm (trong tiếng Anh), Phụ âm trong một chuỗi đó.
Input 01:
anhyeuem
Output 01:
4 4
Giải thích: Chuỗi trên có 4 nguyên âm và 4 phụ âm
Input 02:
HocCongNghe
Output 02:
3 8
Tít và Học Công Nghệ (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Tít là một người ghét hoccongnghe vì cho rằng hoccongnghe cho quá nhiều bài tập khó làm cậu ta phải đau đầu. Vì thế cậu ta ghét tất cả những chữ cái xuất hiện trong từ "hoccongnghe", Tít muốn nhờ bạn xóa hết những kí tự xuất hiện trong từ "hoccongnghe" khỏi xâu kí tự S, bạn hãy giúp Tít nhé. Nếu xâu S sau khi xóa không còn kí tự nào bạn phải in ra EMPTY
In ra xâu S sau khi xóa hoặc in ra EMPTY nếu xâu S trở thành rỗng.
Ràng buộc: ~1 \leq len(S) \leq 10000~
Input 01:
h2t3w4cmnn23o?34c
Output 01:
2t3w4m23?34
Input 02:
hoccongnghe
Output 01:
EMPTY
In ra chữ và số tách riêng (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Cho xâu kí tự S bao gồm chữ cái và chữ số, thực hiện tách riêng chữ số và chữ cái của S.
In ra dòng 1 in ra những chữ số xuất hiện trong S theo thứ tự xuất hiện, dòng 2 in ra những chữ cái xuất hiện trong S theo thứ tự xuất hiện.
Ràng buộc: ~1 \leq len(S) \leq 10000~
Input:
I68c8SASicab6AiI9i
Output:
68869
IcSASicabAiIi
Số đẹp 3 (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Cho số nguyên dương N có ít nhất 2 chữ số, một số được coi là số đẹp nếu 2 chữ số liền kề của nó chỉ lệch nhau đúng 1 đơn vị, ví dụ về số đẹp: 12345, 121212, 78987. Hãy kiểm tra xem N có phải là số đẹp hay không?
In ra YES nếu N là số đẹp, ngược lại in ra NO
Ràng buộc: ~10 \leq N \leq 10^{64}~
Input 01:
255
Output 01:
NO
Input 02:
78987
Output 02:
YES
Tính tổng các chữ số trong xâu (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Cho một xâu kí tự S chỉ bao gồm chữ số và chữ cái, hãy tính tổng chữ số xuất hiện trong xâu
Nhập vào 1 dòng duy nhất chứa xâu S
Ràng buộc: ~1 \leq len(S) \leq 10000~
Input:
315abSA9172WSbn2d0
Output:
30
Giải thích: Tổng các số xuất hiện trong xâu = 3 +1 +5 +9 +1 +7 +2 +2 + 0 = 30
Chuẩn hóa tên 1 (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Cho một xâu là tên người chỉ bao gồm các kí tự là chữ cái và dấu cách, giữa các từ trong xâu có thế tồn tại nhiều dấu cách, hãy chuẩn hóa tên người bằng cách viết hoa chữ cái đầu tiên của từng từ và viết thường các chữ cái còn lại. Xâu tiếp theo là ngày sinh của người này, bao gồm ngày tháng năm phân cách nhau bằng dấu "/", hãy chuẩn hóa ngày sinh của người này về đúng dạng dd/mm/yyyy.
Ràng buộc: Xâu kí tự tên người có không quá 2000 kí tự; Xâu ngày sinh có không quá 10 kí tự. Dữ liệu đảm bảo có dấu '/' giữa ngày, tháng, năm.
Dòng đầu tiên in ra tên người sau khi chuẩn hóa. Dòng thứ 2 in ra ngày sinh sau khi đưa về dạng chuẩn dd/mm/yyyy
Input:
le Thi huyen Thanh
5/6/2007
Output:
Le Thi Huyen Thanh
05/06/2007
Chuẩn hóa tên 2 (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Cho một xâu là tên người chỉ bao gồm các kí tự là chữ cái và dấu cách, giữa các từ trong câu có thế tồn tại nhiều dầu cách hãy chuẩn hóa tên người theo 2 mẫu được yêu cầu trước. Xem output để rõ hơn về cách chuẩn hóa.
Ràng buộc: Xâu kí tự tên người có không quá 1000 kÍ tự
Dòng đầu tiên in ra theo mẫu chuẩn hóa 1. Dòng thứ 2 in ra theo mẫu chuẩn hóa 2.
Input:
le Thi huyen Thanh
Output:
Le Thi Huyen, THANH
THANH, Le Thi Huyen
Email và Mật khẩu 2 (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Trường đại học ABC tổ chức cấp email cho sinh viên mới nhập học. Email và mật khẩu sẽ được cấp dựa trên tên của sinh viên và ngày sinh của sinh viên đó. Bạn hãy viết chương trình để cấp tài khoản theo yêu cầu như sau, tên email được tạo bằng cách lấy tên của sinh viên và ghép với các chữ cái đầu tiên của họ và tên đệm, tất các ký tự trong email đều ở dạng in thường, ví dụ sinh viên có tên "Nguyen Van Long" sẽ được cấp email "longnv@xyz.edu.vn".
Mật khẩu sẽ dựa trên ngày sinh của sinh viên đó, bằng cách ghép ngày tháng năm lại với nhau, ví dụ sinh viên sinh ngày 27/04/2002 sẽ có mật khẩu là 2742002. Ngoài ra sẽ có những trường hợp sinh viên bị trùng tên email, ví dụ, sinh viên "Nguyen Van Long" sẽ được cấp email "longnv@xyz.edu.vn", sinh viên tên "Ngo Van Long" cũng sẽ được cấp email "longnv@xyz.edu.vn", vì thế nhà trường quy định, theo thứ tự tên trong danh sách, nếu email được cấp của sinh viên hiện tại đã được cấp cho một sinh viên trước đó thì thêm số thứ tự vào tên email.
Ràng buộc:
~1 \leq N ≤ 5000~
Dòng thông tin của sinh viên không quá 1000 kí tự, dữ liệu đảm bảo thông tin cuối cùng trong dòng là ngày sinh của sinh viên.
In ra ra email và mật khẩu được cấp của mỗi sinh viên trên 2 dòng. Chú ý các sinh viên email bị trùng tên sẽ được thêm số thứ tự vào sau.
Input:
4
Nguyen quang Truong 24/12/2005
Le van Tho 06/07/2005
ngo quan Truong 12/3/2005
le van Sen 02/4/2005
Output:
truongnq@xyz.edu.vn
24122005
tholv@xyz.edu.vn
672005
truongnq2@xyz.edu.vn
1232005
senlv@xyz.edu.vn
242005
Ghép thành số lớn nhất (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Cho một xâu kí tự S chỉ bao gồm các chữ cái và chữ số, hãy thực hiện tách các số xuất hiện trong xâu ra và ghép lại với nhau để tạo thành một số tự nhiên lớn nhất. Ví dụ với xâu S = "123abcda234kkf11" thì ta sẽ tách được các số 123, 234 và 11, trong trường hợp các số bắt đầu bằng chữ số 0 thì ta loại bỏ các số 0 vô nghĩa này. Sau đó ghép lại với nhau thành số 23412311 là số lớn nhất có thể đạt được.
Ràng buộc: 1 ≤ len(S) ≤ 100000;
In ra số lớn nhất ghép được.
Input:
123abcda234kkf11
Output:
23412311
Chia hết cho 25 (xâu ký tự - chuỗi ký tự)
Nộp bàiPoint: 1
Kiểm tra xem một số nguyên không âm N có chia hết cho 25 hay không? Số chia hết cho 25 nếu nó có 2 chữ sổ tận cùng là 2 số 0 hoặc là số chia hết cho 25.
Ràng buộc: N có không quá 1000 chữ số.
In ra YES nếu N chia hết cho 25, ngược lại in ra NO.
Input:
150
Output:
YES
Chuẩn hóa tên 4
Nộp bàiPoint: 1
Tên người dùng sẽ được chuẩn hóa theo nguyên tắc họ được viết sau cùng, phân tách với phần tên đệm và tên bởi dấu phẩy. Các chữ cái nằm trong họ đều được viết hoa; chữ cái đầu tiên của tên đệm và tên được viết hoa, các chữ cái còn lại viết thường.
INPUT:
ngUYEN van nam
OUTPUT:
Van Nam, NGUYEN
Tạo email từ tên
Nộp bàiPoint: 1
Địa chỉ email được cấp theo nguyên tắc ghép tên với chữ cái đầu tiên của họ và tên đệm. Viết chương trình cho phép tạo các địa chỉ email theo tên.
INPUT:
ngUYEN van binh
OUTPUT:
binhnv@gmail.com
Chuẩn hóa tên 3
Nộp bàiPoint: 1
Tên người dùng sẽ được chuẩn hóa theo nguyên tắc tên được viết sau cùng, phân tách với phần tên đệm và tên bởi dấu phẩy. Các chữ cái nằm trong tên đều được viết hoa; chữ cái đầu tiên của tên đệm và họ được viết hoa, các chữ cái còn lại viết thường.
INPUT:
ngUYEN van binh
OUTPUT:
Nguyen Van, BINH
Chuẩn hóa tên 5
Nộp bàiPoint: 1
Tên người dùng sẽ được chuẩn hóa theo nguyên tắc tên được viết đầu tiên, phân tách với phần họ và tên đệm dấu phẩy. Các chữ cái nằm trong tên đều được viết hoa; chữ cái đầu tiên của tên đệm và họđược viết hoa, các chữ cái còn lại viết thường.
INPUT:
ngUYEN van binh
OUTPUT:
BINH, Nguyen Van