Bài tập Chuỗi (String)
Chủ đề: Tạo chuỗi, slicing, f-string, các phương thức
.upper(),.lower(),.split(),.join(),.replace(),.find(),.strip(),in.
Cơ bản
Bài 1: Nhập vào một chuỗi, in ra độ dài của chuỗi đó.
Bài 2: Nhập họ tên, in ra họ tên đó viết hoa toàn bộ và viết thường toàn bộ.
Bài 3: Cho chuỗi s = "Python", in ra ký tự đầu tiên và ký tự cuối cùng.
Bài 4: Nhập một chuỗi, đảo ngược chuỗi đó (ví dụ: "hello" → "olleh").
Bài 5: Kiểm tra một chuỗi có phải là palindrome (đọc xuôi đọc ngược giống nhau) hay không. Ví dụ: "madam", "level".
Trung bình
Bài 6: Đếm số lần xuất hiện của một ký tự trong chuỗi. Ví dụ: đếm số chữ "a" trong "banana".
Bài 7: Đếm số nguyên âm (a, e, i, o, u) có trong một chuỗi.
Bài 8: Nhập một câu, đếm số từ trong câu đó (dựa vào khoảng trắng).
Bài 9: Viết chương trình loại bỏ khoảng trắng thừa trong chuỗi (ví dụ: " hello world " → "hello world").
Bài 10: Kiểm tra hai chuỗi có phải là anagram của nhau không (chứa cùng các ký tự, khác thứ tự). Ví dụ: "listen" và "silent".
Bài 11: Viết hoa chữ cái đầu của mỗi từ trong câu (Title Case) mà không dùng hàm .title().
Bài 12: Đếm tần suất xuất hiện của mỗi ký tự trong chuỗi, in ra dạng: a: 3, b: 2, ...
Nâng cao
Bài 13: Tìm từ dài nhất trong một câu.
Bài 14: Viết chương trình kiểm tra chuỗi s2 có phải là chuỗi con (substring) xoay vòng của s1 hay không. Ví dụ: "abcd" và "cdab".
Bài 15: Nén chuỗi bằng cách đếm ký tự liên tiếp (Run-Length Encoding). Ví dụ: "aaabbcccc" → "a3b2c4".
Bài 16: Viết hàm kiểm tra hai chuỗi có phải là nhau nếu bỏ qua khoảng trắng và không phân biệt hoa thường không.
Bài 17: Tìm tất cả các chuỗi con là palindrome trong một chuỗi cho trước.
Bài 18: Viết chương trình mã hóa Caesar Cipher: dịch chuyển mỗi ký tự trong chuỗi đi n vị trí trong bảng chữ cái.
Bài 19: Kiểm tra xem một chuỗi có phải là số hợp lệ (int hoặc float, có thể có dấu âm) hay không — không dùng try/except hoặc .isdigit().
Bài 20: Cho một đoạn văn, tìm ra từ xuất hiện nhiều nhất và số lần xuất hiện của nó.