Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra có thể tạo số điện thoại 11 chữ số từ chuỗi số bằng C++

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)