Chuyển tới nội dung chính

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ó.