Bài 8 - Lập trình OOP với Java
Tìm khoảng cách lớn nhất (bài 8)
Nộp bàiPoint: 1
Trong Java, lớp Math cung cấp các phương thức toán học tĩnh, bao gồm tính giá trị tuyệt đối Math.abs(). Đồng thời, lớp tiện ích Arrays hỗ trợ thao tác nhanh trên mảng.
Cho một mảng số nguyên A gồm N phần tử. Hãy sắp xếp mảng theo thứ tự tăng dần bằng Arrays.sort(), sau đó tìm khoảng cách (giá trị tuyệt đối của hiệu) lớn nhất giữa hai phần tử liền kề nhau trong mảng đã sắp xếp.
Đầu vào:Dòng 1: Số nguyên dương N (2 <= 10^5).Dòng 2: N số nguyên A[i] cách nhau bởi khoảng trắng (-10^9 <= A[i] <= 10^9).
Đầu ra: In ra một số nguyên duy nhất là khoảng cách lớn nhất tìm được.
Ví dụ:
Input:
9 1 5 2 15
Output:
6
Xử lý chuỗi cơ bản (bài 8)
Nộp bàiPoint: 1
Lớp String cung cấp nhiều phương thức để thao tác thay đổi, tách, hoặc gộp chuỗi.
Cho một chuỗi văn bản S, hãy thực hiện 2 yêu cầu sau:
In ra độ dài của chuỗi.
Thay thế toàn bộ ký tự 'a' (chữ thường) trong chuỗi thành ký tự '*'.
Đầu vào:Một chuỗi văn bản S có độ dài không quá 1000 ký tự (có thể chứa khoảng trắng).
Đầu ra:Dòng 1: Độ dài của chuỗi.Dòng 2: Chuỗi sau khi đã được thay thế ký tự.
Ví dụ:
Input:
Java la ngon ngu lap trinh
Output:
J*v* l* ngon ngu l*p trinh
Kiểm tra mã sinh viên ICTU (bài 8)
Nộp bàiPoint: 1
Biểu thức chính quy là một chuỗi mẫu quy định dạng thức để so khớp và nhận dạng chuỗi.
Theo quy định, Mã sinh viên của ICTU có định dạng mẫu là bắt đầu bằng chữ D, tiếp theo là 2 chữ số, nối tiếp là chữ CQ, tiếp theo là 2 chữ cái in hoa, và kết thúc bằng 3 chữ số (Ví dụ: D21CQCN001). Cho N chuỗi, hãy kiểm tra xem chuỗi nào là mã sinh viên ICTU hợp lệ.
Đầu vào: Dòng 1: Số nguyên N (1 <= N <= 100). N dòng tiếp theo, mỗi dòng chứa một chuỗi ký tự không chứa khoảng trắng.
Đầu ra: In ra N dòng, ghi YES nếu chuỗi tương ứng là mã hợp lệ, ghi NO nếu không hợp lệ.
Ví dụ:
Input:
3
D21CQCN001
D2CQCN001
d22CQAT015
Output:
YES
NO
NO
Tách chuỗi và lọc số chẵn (bài 8)
Nộp bàiPoint: 1
Các lớp Wrapper cho phép bao bọc dữ liệu nguyên thủy để làm việc như một đối tượng.
Cho một chuỗi chứa các chữ số được ngăn cách nhau bởi dấu phẩy (,). Hãy sử dụng phương thức split(",") để tách chuỗi thành mảng, duyệt mảng và ép kiểu về số nguyên nguyên thủy để kiểm tra. In ra màn hình các số chẵn theo thứ tự xuất hiện.
Đầu vào: Một chuỗi duy nhất chứa các số nguyên cách nhau bởi dấu phẩy.
Đầu ra: Các số chẵn tìm được, mỗi số cách nhau một khoảng trắng. Nếu không có số chẵn nào, in ra KHOANG TRANG.
Ví dụ:
Input:
15,2,8,9,11,20
Output:
2 8 20
Thao tác với stringbuffer (bài 8)
Nộp bàiPoint: 1
Khác với String là bất biến, StringBuffer cho phép thay đổi trực tiếp nội dung xâu gốc (xâu động).
Cho một chuỗi ban đầu S. Bạn cần thực hiện Q thao tác trên chuỗi này bằng StringBuffer. Có 2 loại thao tác: 1 P X: Chèn chuỗi X vào vị trí index P. 2 A B: Xóa đoạn chuỗi từ vị trí A đến B-1.
Đầu vào: Dòng 1: Chuỗi S ban đầu. Dòng 2: Số nguyên Q (1 <= Q <= 100) là số lượng thao tác. Q dòng tiếp theo, mỗi dòng mô tả một thao tác có dạng 1 P X hoặc 2 A B.
Đầu ra: In ra chuỗi sau khi thực hiện xong tất cả các thao tác.
Ví dụ:
Input:
Hello
2
1 5 World
2 0 5
Output:
World
Quản lý sách (bài 8)
Nộp bàiPoint: 1
ArrayList là một cấu trúc mảng động, tự động mở rộng khi cần thiết.
Viết chương trình mô phỏng chức năng quản lý danh sách sinh viên. Ban đầu danh sách rỗng. Có các truy vấn sau: 1 [Ten]: Thêm một sinh viên tên [Ten] vào cuối danh sách. 2 [Ten]: Kiểm tra xem sinh viên [Ten] có trong danh sách không. In ra TRUE hoặc FALSE. 3 [Index]: Xóa sinh viên ở vị trí [Index] (chỉ số tính từ 0).
Đầu vào: Dòng 1: Số nguyên Q (1 <= Q <= 1000) là số lượng truy vấn. Q dòng tiếp theo, mỗi dòng bắt đầu bằng loại truy vấn (1, 2, hoặc 3), theo sau là tham số tương ứng.
Đầu ra: In ra kết quả của các truy vấn loại 2, mỗi kết quả trên một dòng.
Ví dụ:
Input:
4
1 Tuan
1 Linh
2 Linh
3 0
Output:
TRUE
Kiểm tra định dạng email (bài 8)
Nộp bàiPoint: 1
Vận dụng kết hợp biểu thức chính quy để xác thực form đăng nhập.
Cho 2 chuỗi là Email và Mật khẩu. Mật khẩu mạnh: Phải có ít nhất 8 ký tự, bao gồm ít nhất 1 chữ thường, 1 chữ hoa, 1 chữ số và 1 ký tự đặc biệt.
Regex mẫu: ^(?=.[a-z])(?=.[A-Z])(?=.\d)(?=.[@#$%^&+=!]).{8,}$.
Email: Phải đúng chuẩn cấu trúc có @ và tên miền hợp lệ. Regex mẫu: ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$.
Đầu vào: Dòng 1: Chuỗi Email. Dòng 2: Chuỗi Mật khẩu.
Đầu ra: In ra HOP LE nếu cả email và mật khẩu đều thỏa mãn điều kiện. Nếu email sai định dạng, in ra EMAIL KHONG HOP LE. Nếu mật khẩu chưa mạnh, in ra MAT KHAU YEU. Nếu cả hai đều sai, in ra CA HAI DEU SAI.
Ví dụ:
Input:
linh.nguyen@gmail.com
Abc@1234
Output:
HOP LE