Professional Documents
Culture Documents
Nhà của tôi Các khoá học của tôi 2324I_INT2210_24 23 October - 29 October Test 3
Câu Hỏi 1 Đúng
Cho một xâu kí tự chỉ gồm các dấu ngoặc {, }, (, ), [, ]. Một xâu kí tự được định nghĩa là hợp lệ như sau:
Bạn hãy viết chương trình kiểm tra xem một xâu kí tự có hợp lệ hay không.
Đầu vào
Dòng đầu tiên chứa số nguyên T là số lượng xâu kí tự cần kiểm tra.
T dòng tiếp theo, mỗi dòng chứa một xâu kí tự cần kiểm tra (T ≤ 10, độ dài xâu không vượt quá 104 ).
Đầu ra
Với mỗi xâu kí tự, in ra màn hình yes nếu đó là xâu hợp lệ, in ra no nếu ngược lại .
For example:
Input Result
2 yes
{()[]} no
([)]
Đúng
Câu Hỏi 2 Đúng
Cho 3 dãy số nguyên dương có độ dài tương ứng là n1, n2, n3. Nhiệm vụ của bạn là xóa bỏ ít số nhất từ đầu của 3 dãy số này sao cho tổng các phần tử của 3 dãy số này là
bằng nhau.
Đầu vào
Đầu vào từ bàn phím gồm 4 dòng. Dòng đầu tiên chứa 3 số nguyên n1, n2, n3. Dòng thứ 2 chứa n1 số nguyên dương của dãy số đầu tiên. Dòng thứ 3 chứa n2 số nguyên
dương của dãy số thứ hai. Dòng thứ 4 chứa n3 số nguyên dương của dãy số thứ ba. Các số nguyên trên cũng một dòng cách nhau bởi một dấu cách.
Đâu ra
In ra màn hình tổng của các dãy số khi đã xóa đi một số phần tử ở đầu để ba dãy số có tổng bằng nhau.
For example:
Input Result
5 3 4 5
3 2 1 1 1
4 3 2
1 1 4 1
Input
5 3 4
3 2 1 1 1
4 3 2
1 1 4 1
Đúng
Câu Hỏi 3 Đúng
Cho 2 ngăn xếp chứa các số nguyên không âm A = [a1 , a2 , ⋅, an ], B = [b 1 , b 2 , ⋅, b m ] , phần tử đầu tiên là đỉnh của ngăn xếp. Pete chơi một trò chơi trên hai ngăn xếp này
như sau:
Ở mỗi lượt chơi, Pete loại bỏ một số phần tử ở đỉnh của một trong hai hàng đợi.
Pete tính tổng của các phần tử đã được loại bỏ và tính tổng của chúng.
Trò chơi kết thúc khi tổng của các phần tử được loại bỏ lớn hơn một số nguyên x cho trước.
Điểm mà Pete nhận được bằng với số phần tử đã được loại bỏ.
Bạn hãy giúp Pete tính số điểm lớn nhất mà anh ấy có thể đạt được.
Đầu vào
Đầu vào từ bàn phím gồm 3 dòng. Dòng đầu tiên chứa 3 số nguyên n, m, x (n, m 5
≤ 10 , x ≤ 10 )
6
. Dòng thứ 2 chứa n số nguyên ai . Dòng thứ 3 chứa m số nguyên bi
(ai , b i ≤ 10 )
5
. Các số nguyên trên cùng một dòng cách nhau bởi một dấu cách
Đầu ra
In ra màn hình một số nguyên duy nhất là điểm số lớn nhất mà Pete có thể đạt được
For example:
Input Result
5 4 10 4
4 2 4 6 1
2 1 8 5
5 4 10 4 4
4 2 4 6 1
2 1 8 5
17 26 62 6 6
7 15 12 0 5 18 17 2 10 15 4 2 9 15 13 12 16
12 16 6 8 16 15 18 3 11 0 17 7 6 11 14 13 15 6 18 6 16 12 16 11 16 11
31 34 5 1 1
4 11 16 0 18 17 9 13 7 12 16 19 2 15 5 13 1 10 0 8 0 6 16 12 15 7 1 6 19 16 2
15 8 11 16 6 0 5 11 7 9 8 6 3 3 4 8 17 14 9 5 15 15 1 19 10 0 12 8 11 9 11 18 17 14
34 31 5 1 1
15 8 11 16 6 0 5 11 7 9 8 6 3 3 4 8 17 14 9 5 15 15 1 19 10 0 12 8 11 9 11 18 17 14
4 11 16 0 18 17 9 13 7 12 16 19 2 15 5 13 1 10 0 8 0 6 16 12 15 7 1 6 19 16 2
Đúng
trong giải thuật quicksort với mục tiêu sắp xếp các phần tử theo thứ tự giảm dần.
For example:
Input Result
5 9 7 4 3 1
4 1 3 9 7
Reset answer
5 9 7 4 3 1 9 7 4 3 1
4 1 3 9 7
Đúng
Câu Hỏi 5 Đúng
Cho n xâu kí tự, bạn hãy viết chương trình sắp xếp các xâu kí tự này theo thứ tự độ dài tăng dần, nếu có nhiều xâu có độ dài bằng nhau, sắp xếp các xâu này theo thứ tự từ
điển.
Đầu vào
Dữ liệu vào từ bàn phím gồm n + 1 dòng. Dòng đầu tiên chứa số nguyên n 4
.
(n ≤ 10 ) n dòng tiếp theo mỗi dòng chứa một xâu kí tự có độ dài không vượt quá 20 .
Đầu ra
In ra màn hình các xâu sau khi đã sắp xếp, mỗi xâu trên một dòng.
For example:
Input Result
5 c
aaaa bc
bc abc
c bbc
abc aaaa
bbc
1 ▼ import java.util.*;
2 ▼ public class Solution5 {
3 ▼ public static void main(String[] args) {
4 Scanner input = new Scanner(System.in);
5 int n = input.nextInt();
6 input.nextLine();
7 List<String> strings = new ArrayList<>();
8 ▼ for(int i = 0; i < n; i++) {
9 String str = input.nextLine();
10 strings.add(str);
11
12 }
13 ▼ Collections.sort(strings, new Comparator<String>() {
14 @Override
15 ▼ public int compare(String s1, String s2) {
16 ▼ if (s1.length() != s2.length()) {
17 return s1.length() - s2.length();
18 ▼ } else {
19 return s1.compareTo(s2);
20 }
21 }
22 });
23 ▼ for (String str : strings) {
24 System.out.println(str);
25 }
26 }
27 }
28
Đúng
Câu Hỏi 6 Đúng
Cho n số nguyên, bạn hãy viết chương trình sắp xếp các số này theo thứ tự tổng các chữ số tăng dần. Tức là, tổng các chữ số của số đứng trước nhỏ hơn hoặc bằng tổng
các chữ số của số đứng sau. Nếu hai số có tổng các chữ số bằng nhau, thì số nhỏ hơn sẽ đứng trước.
Đầu vào
Dữ liệu vào từ bàn phím gồm n + 1 dòng. Dòng đầu tiên chứa số nguyên n 4
.
(n ≤ 10 ) n dòng tiếp theo mỗi dòng chứa một số nguyên không vượt quá 107 .
Đầu ra
In ra màn hình các số sau khi đã sắp xếp, các số phân tách nhau bởi một dấu cách.
For example:
Input Result
5 1000
12 2
1000 200
200 12
30 30
2
Đúng
Câu Hỏi 7 Đúng
Cho một dãy A gồm N số nguyên và số nguyên K . Đếm số lượng cặp số nguyên trong dãy A có chênh lệch bằng K .
Đầu vào
Dữ liệu vào từ bàn phím gồm 2 dòng. Dòng đầu tiên chứa 2 số nguyên N và K 5 9
(0 < N ≤ 10 , 0 ≤ K ≤ 10 ) . Dòng thứ 2 chứa N số nguyên ai thuộc dãy A (
ai < 2
31
− 1 ).
Đầu ra
In ra màn hình một dòng duy nhất chứa số lượng cặp số nguyên có chênh lệch là K .
For example:
Input Result
5 2 3
1 5 3 4 2
1 ▼ import java.util.Scanner;
2 import java.util.Arrays;
3 ▼ public class Solution7{
4 ▼ public static void main(String[] args) {
5 Scanner input = new Scanner(System.in);
6 int N = input.nextInt();
7 int K = input.nextInt();
8 int [] A = new int [N];
9 ▼ for (int i =0; i<N; i++) {
10 A[i] = input.nextInt();
11 }
12 Arrays.sort(A);
13 int count = 0;
14 ▼ for (int i = 0; i < N; i++) {
15 ▼ for(int j = i + 1; j < N; j++) {
16 ▼ if(A[j] - A[i] == K) {
17 count ++;
18 }
19 ▼ if(A[j] - A[i] > K) {
20 break;
21 }
22 }
23 }
24 System.out.println(count);
25 }
26 }
Đúng
Câu Hỏi 8 Đúng một phần
Cho hai dãy số A, B chứa các số nguyên. Bạn hãy viết chương trình đếm số lượng cặp chỉ số i, j sao cho Ai + Bj = 0 .
Đầu vào
Dữ liệu vào từ bàn phìm gồm ba dòng. Dòng đầu tiên chứa 2 số nguyên m, n là số lượng phần tử trong hai dãy số A, B. Dòng thứ hai chứa m số nguyên trong dãy số A .
Dòng thứ ba chứa n số nguyên trong dãy số B. Giới hạn: n, m 5
≤ 10 , |Ai |, |Bi | ≤ 10
6
. Các số nguyên trên cùng một dòng cách nhau bởi một dấu cách.
Đầu ra
For example:
Input Result
4 3 3
1 3 -2 1
2 3 -1
Câu Hỏi 9 Đúng
Cho một dãy số A gồm n số nguyên được sắp xếp theo thứ tự tăng dần (các phần tử thuộc dãy A được đánh số từ 1 đến n) và một số nguyên k. Bạn hãy viết chương trình
tìm cặp số nguyên i < j sao cho Ai + Aj = k .
Đầu vào
Dữ liệu vào từ bàn phím gồm hai dòng. Dòng đầu tiên chứa 2 số nguyên n, k. Dòng tiếp theo chứa n số nguyên Ai . Giới hạn: 2 5 6
≤ n ≤ 10 , |Ai | ≤ 10 , |k| ≤ 10
6
. Các số
nguyên trên cùng một dòng cách nhau bởi một dấu cách.
Đầu ra
In ra màn hình một dòng duy nhất chứa cặp số nguyên i, j cách nhau bởi một dấu cách. Nếu có nhiều cặp i, j khác nhau thỏa mãn điều kiện, in ra cặp có giá trị i × n + j
For example:
Input Result
3 6 1 3
2 3 4
Đúng
Câu Hỏi 10 Đúng
Mỗi khoảng số nguyên được biểu diễn bởi hai số [a, b] , trong đó a là điểm bắt đầu và b là điểm kết thúc của đoạn. Hai khoảng số nguyên [a, b] và [c, d] được gọi là chồng
lên nhau nếu chúng có điểm chung. Hợp của Hai khoảng số nguyên chồng lên nhau [a, b] và [c, d] là một khoảng mới có dạng [min(a,c), max(b,d)].
Cho n khoảng số nguyên, bạn hãy viết chương trình hợp các khoảng số nguyên này lại với nhau.
Đầu vào
Dữ liệu đầu vào gồm n + 1 dòng. Dòng đầu tiên chứa số nguyên n . n dòng tiếp theo, mỗi dòng chứa 2 số nguyên ai , bi cách nhau bởi một dấu cách là đầu và cuối của các
khoảng số nguyên. Giới hạn: (n 5
≤ 10 , |ai |, |b i | ≤ 10
9
.
Đầu ra
In ra màn hình các khoảng số nguyên sau khi đã hợp nhất theo thứ tự tăng dần (khoảng [a, b] nhỏ hơn khoảng [c, d] nếu a < c ).
For example:
Input Result
5 1 8
1 3 10 15
10 15
2 5
3 4
5 8
1 ▼ import java.util.*;
2
3 ▼ public class Solution10 {
4 ▼ public static void main(String[] args) {
5 Scanner input = new Scanner(System.in);
6 int n = input.nextInt();
7 List<Interval> intervals = new ArrayList<>();
8 ▼ for (int i = 0; i < n; i++) {
9 int start = input.nextInt();
10 int end = input.nextInt();
11 intervals.add(new Interval(start, end));
12 }
13
14 ▼ Collections.sort(intervals, new Comparator<Interval>() {
15 ▼ public int compare(Interval a, Interval b) {
16 return a.start - b.start;
17 }
18 });
19
20 List<Interval> mergedIntervals = new ArrayList<>();
21 Interval curInterval = intervals.get(0);
22 ▼ for (int i = 1; i < n; i++) {
23 Interval nextInterval = intervals.get(i);
24 ▼ if (curInterval.end >= nextInterval.start) {
25 curInterval.end = Math.max(curInterval.end, nextInterval.end);
26 ▼ } else {
27 mergedIntervals.add(curInterval);
28 curInterval = nextInterval;
Đúng