Đối với việc xây dựng khác đôi khi gây nhầm lẫn ngay cả những lập trình viên Python dày dặn nhất. Nhưng nó thực sự không phức tạp chút nào
Mệnh đề khác được thực thi sau khi vòng lặp for kết thúc. Có thể khó biết liệu vòng lặp có hoàn thành thành công hay không, đặc biệt nếu có câu lệnh ngắt trong vòng lặp. Tuyên bố khác ở đây đảm bảo với chúng tôi rằng vòng lặp đã chạy thành công trong suốt
for j in range[6]: print[j] else: print["No"]
đầu ra
0 1 2 3 4 5 No
Vì vậy, nó có vẻ dư thừa do đó có sự nhầm lẫn nhưng hãy nhìn nhận nó theo cách này. Điều gì sẽ xảy ra nếu có một câu lệnh ngắt trong vòng lặp
Đánh giá bài viết này
? . Accolite, Tesco, Google
Xây dựng vấn đề
Sự miêu tả
Cho hai chuỗi
0 1 2 3 4 5 No7 và
0 1 2 3 4 5 No8, hãy kiểm tra xem
0 1 2 3 4 5 No7 có phải là dãy con của
0 1 2 3 4 5 No8
Một dãy con của một chuỗi là một chuỗi mới được tạo thành từ chuỗi ban đầu bằng cách xóa một số [có thể không] ký tự mà không làm xáo trộn vị trí tương đối của các ký tự còn lại. [tôi. e. ,
Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False1 là dãy con của
Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False2 trong khi
Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False0 không phải]
hạn chế
Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False
1Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False
20 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
8 chỉ bao gồm các chữ cái tiếng Anh viết thường
Ví dụ
Input: str1 = "abc", str2 = "ahbgdc" Output: True Input: str1 = "axc", str2 = "ahbgdc" Output: False
Trường hợp biên giới
- Nếu
0 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
8 đều trống, thì Kết quả →Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False
7, vì chuỗi rỗng là chuỗi con của một chuỗi trống khác - Nếu
0 1 2 3 4 5 No
7 → trống và0 1 2 3 4 5 No
8 → không trống, thì Kết quả →Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False
7, vì chuỗi rỗng cũng là chuỗi con của bất kỳ chuỗi đã cho nào - Nếu
0 1 2 3 4 5 No
7 → không trống và0 1 2 3 4 5 No
8 → trống, thì Đầu ra →def isSubSequence[str1, str2]: len_str1 = len[str1] len_str2 = len[str2] index_str1 = 0 index_str2 = 0 # Traverse both str1 and str2 while index_str1 < len_str1 and index_str2 < len_str2: # Compare current character of str2 with str1 if str1[index_str1] == str2[index_str2]: # If matched, then move to next character in str1 index_str1 = index_str1 + 1 index_str2 = index_str2 + 1 return index_str1 == len_str1 val_1 = 'abc' val_2 = 'ahbgdc' print[isSubSequence[val_1, val_2]]
3, vì chuỗi không rỗng không thể là chuỗi con của chuỗi rỗng
Input: str1 = "", str2 = "" Output: True Input: str1 = "", str2 = "ahbgdc" Output: True Input: str1 = "abc", str2 = "" Output: False
Tổng quan về Giải pháp Đề xuất
Duyệt qua từng ký tự trong các chuỗi đã cho. Có hai trường hợp khi bạn làm như vậy
- Các ký tự hiện tại của cả hai chuỗi đều bằng nhau. Vì vậy, hãy chuyển sang chỉ mục/ký tự tiếp theo của
0 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
8 - Các ký tự hiện tại của cả hai chuỗi không bằng nhau. Vì vậy, hãy chuyển sang chỉ số/ký tự tiếp theo của
0 1 2 3 4 5 No
8. Tuy nhiên, chỉ mục của0 1 2 3 4 5 No
7 vẫn cố định trong trường hợp này do không tìm thấy ký tự phù hợp
Quá trình trên được lặp lại cho đến khi thỏa mãn một trong các tiêu chí sau
- Tất cả các ký tự của
0 1 2 3 4 5 No
7 đều có mặt trong0 1 2 3 4 5 No
8. Độ dài của0 1 2 3 4 5 No
7 và giá trị hiện tại của0 1 2 3 4 5 No
01 sẽ bằng nhau trong trường hợp này. Điều này biểu thị rằng chúng tôi đã tìm thấy thành công chuỗi con trong chuỗi đã cho. Nói cách khác,0 1 2 3 4 5 No
7 là dãy con của0 1 2 3 4 5 No
8 - Tất cả các ký tự của
0 1 2 3 4 5 No
8 đã được duyệt qua. Điều này có nghĩa là ký tự cuối cùng của0 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
8 bằng nhau hoặc0 1 2 3 4 5 No
8 không phải là dãy con của0 1 2 3 4 5 No
7
biểu diễn sơ đồ
Dung dịch
________số 8đầu ra
0 1 2 3 4 5 No0
Giải thích mã
0 1 2 3 4 5 No
09 và0 1 2 3 4 5 No
70 lần lượt lưu trữ độ dài của0 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
80 1 2 3 4 5 No
01 và0 1 2 3 4 5 No
74 được sử dụng để lưu trữ các chỉ số của từng ký tự của0 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
8 tương ứng- Vòng lặp
0 1 2 3 4 5 No
77 được sử dụng để duyệt qua các chuỗi cho đến khi tìm thấy kết quả khớp hoặc tất cả các chỉ số của str2 đã được duyệt trong trường hợp không khớp0 1 2 3 4 5 No
78 so sánh ký tự hiện tại của0 1 2 3 4 5 No
7 và0 1 2 3 4 5 No
8- Trong trường hợp tìm thấy kết quả trùng khớp, chỉ số của ký tự tiếp theo trong
0 1 2 3 4 5 No
7 sẽ được tính đến
- Trong trường hợp tìm thấy kết quả trùng khớp, chỉ số của ký tự tiếp theo trong
- Giá trị của
0 1 2 3 4 5 No
01 được tăng lên sau mỗi lần lặp để duyệt qua tất cả các chữ cái có sẵn trong0 1 2 3 4 5 No
7 cho đến khi tìm thấy dãy con
- Cuối cùng, nếu dãy con được tìm thấy thì giá trị được lưu trữ bởi
0 1 2 3 4 5 No
01 sẽ bằng với độ dài của0 1 2 3 4 5 No
7
chạy khô
Bảng sau đây minh họa hoạt động ở mỗi lần lặp trong vòng lặp while cho đến khi tìm thấy kết quả phù hợp
?
Làm cách nào để kiểm tra xem một chuỗi có phải là chuỗi con của chuỗi khác không?
Xem video này trên YouTube
Shubham Sayon
Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking