Mô tả bài toán
Chuỗi S chữ số. Số điện thoại hợp lệ: 11 chữ số, bắt đầu bằng '8'. Có thể xóa chữ số bất kỳ. Kiểm tra có thể tạo được không.
Ví dụ
S="5818005553985" → xóa '5' đầu → "818005553985" (12 chữ số?) Wait: cần 11 chữ số. Code: thêm '8' vào cuối, tìm vị trí '8' đầu tiên, nếu vị trí <= m-11 thì true.
Thuật toán
Độ dài m. Cần 11 chữ số, đầu là '8'. Do đó cần tìm '8' ở vị trí ≤ m-11 (0-based). Code thêm '8' cuối để tránh không tìm thấy, rồi kiểm tra.
Code C++
#include <bits/stdc++.h>
using namespace std;
bool solve(string S) {
int m = S.size();
S.push_back('8');
if (int(S.find('8')) <= m - 11)
return true;
return false;
}
int main() {
string S = "5818005553985";
cout << solve(S) << endl;
return 0;
}
Đầu vào / Đầu ra
Input: "5818005553985"
Output: 1 (true)