Editorial for C Bài 3.A1: Bảng chữ cái
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Lời giải chi tiết
Bài này là bài liên quan đến xâu ký tự, sử dụng char[] hay char* để thể hiện chúng.
Ý tưởng: Ta sẽ sử dụng 2 vòng lặp lồng nhau, mỗi kí tự trong bảng chữ cái sẽ được kiểm tra sự xuất hiện trong xâu \(a\). Nếu không có kí tự đó thì ngay lập tức break vòng lặp và trả về kết quả NO
. Nếu duyệt hết mà không vấn đề gì thì trả về YES
.
Các bước giải:
- Bước 1: Khai báo và nhập vào số \(q\) thể hiện số truy vấn, sau đó chạy truy vấn.
- Bước 2: Khai báo và nhập vào số \(n\) và một xâu \(a\).
- Bước 3: Sử dụng 2 vòng lặp lồng vào nhau: Vòng thứ nhất là duyệt tất cả các kí tự từ
a
đếnz
, vòng thứ 2 là duyệt tất cả các kí tự trong xâu \(a\). Nếu một kí tự đã xuất hiện trong xâu \(a\), break vòng lặp thứ 2 để tiếp tục vòng lặp thứ nhất. Trong trường hợp vòng lặp thứ 2 hoàn thành, có nghĩa là kí tự đang được duyệt không xuất hiện trong xâu \(a\). Khi đó ta sẽ break vòng lặp thứ nhất và in raNO
, kết thúc truy vấn. Còn nếu chạy hết vòng lặp thứ nhất, tức là các kí tự từa
đếnz
đều xuất hiện trong xâu \(a\). Lúc này in raYES
. - Bước 4: Xuống dòng để tiếp tục với các truy vấn sau đó.
Đăng ký khóa học: https://www.facebook.com/clblaptrinhfullhouse
SĐT liên hệ: 0372229686
Youtube: CLB Lập Trình Full House
Fullhouse dev đồng hành trên từng dòng code
Comments