Lý lịch
MQTT (Truyền tải hàng đợi từ xa tin nhắn) là một giao thức nhắn tin dựa trên đăng ký theo tiêu chuẩn ISO ( Wikipedia ).
Mỗi tin nhắn có một chủ đề, chẳng hạn như các ví dụ sau:
myhome/groundfloor/livingroom/temperature
USA/California/San Francisco/Silicon Valley
5ff4a2ce-e485-40f4-826c-b1a5d81be9b6/status
Germany/Bavaria/car/2382340923453/latitude
Khách hàng MQTT có thể đăng ký chủ đề tin nhắn bằng cách sử dụng ký tự đại diện:
- Cấp một:
+
- Tất cả các cấp trở đi:
#
Ví dụ: đăng ký myhome/groundfloor/+/temperature
sẽ tạo ra các kết quả này (không phù hợp in đậm ):
✅ MyHome / trệt / phòng khách / nhiệt độ
✅ MyHome / trệt / bếp / nhiệt độ
❌ MyHome / trệt / phòng khách / sáng
❌ MyHome / firstfloor / phòng khách / nhiệt độ
❌ gara / trệt / tủ lạnh / nhiệt độ
Trong khi đó, thuê bao +/groundfloor/#
sẽ tạo ra những kết quả này:
✅ myhome / groundfloor / phòng khách / nhiệt độ
✅ myhome / groundfloor / bếp / độ sáng
✅ nhà để xe / tầng trệt / tủ lạnh / nhiệt độ / hơn / cụ thể / lĩnh vực
❌ myhome / Firstfloor / phòng khách / nhiệt độ
myhome / tầng hầm / góc
Thêm thông tin ở đây .
Nhiệm vụ
Thực hiện một chức năng / chương trình chấp nhận hai chuỗi và trả về một boolean. Chuỗi đầu tiên là chủ đề chủ đề, thứ hai là chủ đề tiêu chí. Chủ đề tiêu chí sử dụng cú pháp đăng ký chi tiết ở trên. Các chức năng là trung thực khi đối tượng phù hợp với tiêu chí.
Quy tắc cho nhiệm vụ này:
- Chủ đề là ASCII
- Không có trường tiêu chí nào ngoài
#
ký tự đại diện - Ký tự đại diện không xuất hiện trong chủ đề
- Số trường chủ đề> = số trường tiêu chí
- Không có trường 0 ký tự cũng không có dấu gạch đầu dòng hoặc đuôi phía trước
Các trường hợp thử nghiệm
iteria1 = "myhome / groundfloor / + / nhiệt độ" iteria2
= "+ / groundfloor / #"
("abc", "ab") => false
("abc", "abc") => true
("abc / de", "abc") => false
("myhome / groundfloor / phòng khách / nhiệt độ", tiêu chí1 ) => true
("myhome / groundfloor / Kitchen / nhiệt độ",
iteria1 ) => true ("myhome / groundfloor / Livingroom / độ sáng",
iteria1 ) => false ("myhome / Firstfloor / Livingroom / nhiệt độ", iteria1) > false
("gara / groundfloor / tủ lạnh / nhiệt độ",
iteria1 ) => false ("myhome / groundfloor / Livingroom / nhiệt độ",
iteria2 ) => true ("myhome / groundfloor / Kitchen / độ sáng", iteria2) => true
("nhà để xe / mặt đất / tủ lạnh / nhiệt độ / nhiều hơn / cụ thể / lĩnh vực ", tiêu
chí2 ) => đúng (" myhome / Firstfloor / phòng khách / nhiệt độ ", iteria2) => sai
("myhome / tầng hầm / góc / nhiệt độ", iteria2) => false
("âm nhạc / kei $ ha / mới nhất", "+ / kei $ ha / +") => true
a/b/c
sẽ không phù hợp với tiêu chía/b
, vì vậy tôi có xu hướng nói Không .