Tìm tất cả các lần xuất hiện của một xâu con trong một xâu đã cho trong Python
Trong bài toán này, mình sẽ viết một chương trình Python để tìm tất cả các lần xuất hiện của một xâu con trong một xâu đã cho mà không phân biệt chữ hoa, chữ thường.
Mình sẽ duyệt qua xâu gốc và so sánh từng phần tử với xâu con theo cùng một trình tự, bỏ qua việc phân biệt chữ hoa và chữ thường. Khi tìm thấy một lần xuất hiện của xâu con, chúng ta sẽ lưu vị trí xuất hiện đó vào danh sách để cuối cùng in ra tất cả các vị trí.
Tìm tất cả các lần xuất hiện của một xâu con trong Python
Dưới đây là chương trình Python để tìm tất cả các lần xuất hiện của một xâu con trong một xâu đã cho (không phân biệt chữ hoa, chữ thường):
def tim_lan_xuat_hien(xau_goc, xau_con): # Chuyển đổi cả xâu gốc và xâu con thành chữ thường để bỏ qua phân biệt chữ hoa, chữ thường xau_goc_lower = xau_goc.lower() xau_con_lower = xau_con.lower() # Khởi tạo danh sách để lưu các vị trí xuất hiện của xâu con vi_tri_xuat_hien = [] # Độ dài của xâu con do_dai_xau_con = len(xau_con) # Duyệt qua xâu gốc để tìm các lần xuất hiện của xâu con for i in range(len(xau_goc_lower) - do_dai_xau_con + 1): if xau_goc_lower[i:i + do_dai_xau_con] == xau_con_lower: vi_tri_xuat_hien.append(i) return vi_tri_xuat_hien # Hàm main để kiểm tra def main(): xau_goc = input("Nhập xâu gốc: ") xau_con = "USA" ket_qua = tim_lan_xuat_hien(xau_goc, xau_con) if ket_qua: print(f"Các lần xuất hiện của \"{xau_con}\" trong \"{xau_goc}\" (không phân biệt chữ hoa, chữ thường):") print(ket_qua) else: print(f"Không tìm thấy lần xuất hiện nào của \"{xau_con}\" trong \"{xau_goc}\" (không phân biệt chữ hoa, chữ thường).") if __name__ == "__main__": main()
Giải thích kết quả:
- Chương trình sẽ yêu cầu người dùng nhập xâu gốc và xâu con (trong trường hợp này, xâu con là "USA").
- Hàm
tim_lan_xuat_hien
được sử dụng để tìm tất cả các lần xuất hiện của xâu con trong xâu gốc (không phân biệt chữ hoa, chữ thường). - Đầu tiên, mình chuyển đổi cả xâu gốc và xâu con thành chữ thường bằng cách sử dụng phương thức
lower()
. - Sau đó, mình duyệt qua xâu gốc bằng vòng lặp for để tìm các lần xuất hiện của xâu con.
- Khi tìm thấy một lần xuất hiện của xâu con, chúng ta lưu vị trí xuất hiện đó vào danh sách
vi_tri_xuat_hien
. - Cuối cùng, mình in ra danh sách các vị trí xuất hiện của xâu con.
Ví dụ:
Nhập:
Nhập xâu gốc: Welcome to USA. USA is a beautiful country.
Kết quả:
Các lần xuất hiện của "USA" trong "Welcome to USA. USA is a beautiful country." (không phân biệt chữ hoa, chữ thường): [11, 15]
Nhập:
Nhập xâu gốc: Hello, USA!
Kết quả:
Các lần xuất hiện của "USA" trong "Hello, USA!" (không phân biệt chữ hoa, chữ thường): [7]
Trên đây là một giải pháp sử dụng Python để tìm tất cả các lần xuất hiện của một xâu con trong một xâu đã cho mà không phân biệt chữ hoa, chữ thường. Hy vọng rằng blog này sẽ hữu ích cho bạn khi làm việc với các bài toán liên quan đến xâu ký tự trong Python. Chúc bạn thành công trong việc viết các chương trình xử lý xâu ký tự phức tạp hơn!
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo một chuỗi gồm ký tự đầu tiên, giữa và cuối cùng trong Python
- Tạo một chuỗi gồm ba ký tự ở giữa trong Python
- Nối chuỗi mới vào giữa một chuỗi đã cho trong Python
- Tạo một chuỗi mới bao gồm các ký tự đầu tiên, giữa và cuối của mỗi chuỗi đầu vào trong Python
- Sắp xếp các ký tự chuỗi sao cho chữ thường đứng trước trong Python
- Đếm tất cả các chữ cái, chữ số và ký hiệu đặc biệt từ một chuỗi đã cho trong Python
- Tạo một chuỗi hỗn hợp sử dụng các quy tắc trong Python
- Kiểm tra cân bằng ký tự chuỗi trong Python
- Tìm tất cả các lần xuất hiện của một xâu con trong một xâu đã cho trong Python
- Tính tổng và trung bình cộng các chữ số có trong một xâu trong Python
- Viết chương trình đếm số lần xuất hiện của tất cả các ký tự trong một xâu trong Python
- Đảo ngược một xâu đã cho trong Python
- Tìm vị trí cuối cùng của một chuỗi con cho trước trong Python
- Tách một chuỗi trên dấu gạch nối trong Python
- Xóa chuỗi rỗng khỏi danh sách chuỗi trong Python
- Xóa các ký hiệu/dấu câu đặc biệt khỏi một chuỗi trong Python