WAP chấp nhận hai chuỗi và trả về chỉ mục của tất cả các lần xuất hiện của chuỗi thứ hai trong chuỗi đầu tiên dưới dạng danh sách.

lập trình


Tôi không thể hiểu được vấn đề này….xin vui lòng giải thích cho tôi và viết chương trình giải quyết câu hỏi này

Những gì tôi đã thử:

Tôi không biết làm thế nào để giải quyết câu hỏi này.

Giải pháp 1

Hãy bắt đầu đọc bài tập một cách cẩn thận – nó có thể khác với phần “tóm tắt” mà bạn đưa cho chúng tôi.
Bạn cần tìm tất cả các lần một chuỗi xuất hiện bên trong một chuỗi khác. Vì vậy, nếu bạn đang tìm kiếm tất cả các lần xuất hiện của “hello” trong “hello Mike, hello Jane, hello Peter” thì nó sẽ xuất hiện ba lần: “hello Mike, hello Jane, hello Peter” và các chỉ số là số ký tự tính từ đầu chuỗi nơi chuỗi con xuất hiện:

hello Mike, hello Jane, hello Peter
^           ^           ^
|           |           |
|           |            --- 24
|            --- 12
--- 0

Sau đó hãy tự hỏi “Làm cách nào để thực hiện việc này một cách thủ công?”.
Bạn sẽ xem qua chuỗi để tìm “h” và kiểm tra xem nó có được theo sau bởi “e” hay không, sau đó là “l”, v.v. Nếu đúng như vậy thì bạn đã tìm thấy chuỗi con, vì vậy hãy ghi lại vị trí bắt đầu.
Dù bằng cách nào, bạn sẽ chuyển sang ký tự tiếp theo và kiểm tra lại.

Hãy tính toán trong đầu chính xác những quy tắc bạn cần tuân theo và thử chúng theo cách thủ công trên một số chuỗi và chuỗi con khác nhau. Khi bạn có các quy tắc bao gồm tất cả các trường hợp bạn có thể nghĩ đến (bao gồm chuỗi trống, kết quả khớp toàn bộ, không khớp, v.v.) thì hãy nghĩ đến cách tin học hóa chúng.

Nếu bạn gặp vấn đề khi bắt đầu thì điều này có thể hữu ích: Cách viết mã để giải quyết vấn đề, Hướng dẫn cho người mới bắt đầu[^]

Giải pháp 2

Nhìn thấy Các loại tích hợp – Tài liệu Python 3.10.10[^] để biết thông tin về cách sử dụng và truy cập chuỗi.

Giải pháp 3

def find_indices(str1, str2):
chỉ số = []

cho i trong phạm vi(len(str1)):
nếu str1[i:i + len(str2)] == str2:
chỉ số.append(i)
trả về chỉ số nếu chỉ số khác -1

コメント

タイトルとURLをコピーしました