Tất cả thử thách
Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Tuổi không hợp lệ đầu tiên

Xác thực các tuổi đã nhập và báo vị trí của mục nhập sai đầu tiên thay vì để chương trình bị lỗi.

Bạn sẽ học được gì

  • Kiểm tra chuỗi chỉ gồm chữ số
  • Kiểm tra một số nằm trong khoảng cho phép
  • Báo vị trí của mục sai đầu tiên

Đề bài

Xem bản gốc (English)

Một form đăng ký nhận tuổi dưới dạng văn bản. Một mục nhập là hợp lệ khi, sau khi xóa khoảng trắng ở cả hai đầu, nó chỉ gồm các chữ số (không có dấu) và giá trị của nó nằm trong khoảng từ 0 đến 150 bao gồm cả hai đầu.

Hãy tìm mục nhập không hợp lệ đầu tiên để form có thể chỉ ra cho người dùng.

Hãy triển khai first_invalid_age(values).

Đầu vào

values: Các tuổi đã nhập, theo thứ tự trong form.

Đầu ra

Trả về chỉ số của mục nhập không hợp lệ đầu tiên, hoặc -1 nếu tất cả đều hợp lệ.

Ràng buộc

0 ≤ số mục ≤ 10,000

Mỗi mục có tối đa 20 ký tự

Ví dụ

Ví dụ 1
Đầu vào:
values = ["25", " 40 ", "abc", "200"]

Kết quả mong đợi:
expected = 2
Đầu vào:
std::vector<std::string> values = {"25", " 40 ", "abc", "200"};

Kết quả mong đợi:
long long expected = 2;
Đầu vào:
string[] values = new string[] {"25", " 40 ", "abc", "200"};

Kết quả mong đợi:
long expected = 2;

Giải thích

"25" và " 40 " (đã xóa khoảng trắng) là hợp lệ; "abc" ở chỉ số 2 là mục nhập không hợp lệ đầu tiên.

Ví dụ 2
Đầu vào:
values = ["0", "150", "007"]

Kết quả mong đợi:
expected = -1
Đầu vào:
std::vector<std::string> values = {"0", "150", "007"};

Kết quả mong đợi:
long long expected = -1;
Đầu vào:
string[] values = new string[] {"0", "150", "007"};

Kết quả mong đợi:
long expected = -1;

Giải thích

Cả ba đều là các chữ số trong khoảng từ 0 đến 150 (007 là 7), nên đáp án là -1.

Hướng tiếp cận

Hãy tự thử trước, sau đó mở từng gợi ý một.

Gợi ý 1

Cắt khoảng trắng rồi kiểm tra chuỗi không rỗng và chỉ gồm chữ số.

Gợi ý 2

Chỉ sau đó mới so giá trị với 150.

Gợi ý 3

Dấu trừ làm mục không hợp lệ, còn 007 là số 7 hợp lệ.

Độ phức tạp mong đợi

thời gian O(tổng độ dài), bộ nhớ phụ O(1)

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.