Đáp án Codewars Kyu 6

Level đạt được sẽ chứng tỏ bạn đã cứng ngôn ngữ khi áp dụng với các logic, bài toán

Các bài tập trong Level 6

Đáp án Codewars Kyu 6

Sums of part

Cho 1 mảng có các phần tử. Hãy lấy mảng chứa tổng các phần tử trong mảng. Sau đó bỏ phần tử đầu tiên đi rồi cộng tiếp đến khi mảng không còn phần tử nào.
VD: Mảng [0, 1, 3, 6, 10]
Lần 1: sum = 0 + 1 + 3 + 6 + 10 = 20
Lần 2: sum = 1 + 3 + 6 + 10 = 20
Cứ thể cho ra mảng sumArr = [20, 20, 19, 16, 10, 0]

Logic: Thay vì cộng từng phần tử. Hãy lấy tổng tất cả phần tử trừ đi phần tử đầu tiên. Cứ trừ dần trừ dần.

Đáp án

PHP: Lần cộng đầu tiên dùng array_sum để bớt 1 vòng lặp.

Codewars đáp án result

Đáp án khác. Thay vì dùng count thì dùng sizeof.

Remove the minimum

Cho một mảng các số nguyên, loại bỏ giá trị nhỏ nhất. Không làm thay đổi mảng / danh sách ban đầu.
Nếu có nhiều phần tử có cùng giá trị, hãy loại bỏ phần tử có chỉ số (index) thấp hơn.
Nếu mảng / danh sách trống, trả về mảng / danh sách trống.

Đáp án

JavaScript

Tạo mảng mới và min = giá trị nhỏ nhất mảng cần xét.
Duyệt mảng.
Nếu duyệt đến phần tử nhỏ nhất, min = min – 1 để nếu có giá trị nhỏ nhất sau đó, giá trị đó sẽ được cho vào mảng mới.
Tất cả phần tử còn lại bỏ vào mảng mới.
Chúng ta có mảng mới với tất cả giá trị lớn hơn min.

Ví dụ mảng: [1,2,3,4,1,5,6]
Min = 1
Lần đầu: min = min – 1 = 0 Xem như bỏ số 1 đầu tiên.
Lần sau gặp số 1 kế tiếp thì không bỏ nữa vì min < 1. Chạy vào else.

Codewars đáp án result Codewars đáp án result Codewars đáp án result

Java: Khởi tạo mảng, đặt giá trị cho mảng và sum rồi cộng từng phần tử theo thứ tự ngược lại.

Codewars đáp án result

Lưu ý: Khi khởi tạo mảng, phải dung int[] và phải khai báo giá trị bằng new int[số giá trị];

Codewars đáp án result

Bit Counting

Cho một số nguyên.
Trả về nhị phân của số nguyên đó.
Cộng tất cả các chữ số trong số nhị phân đó và ra kết quả.

Ví dụ: 1234 có nhị phân là 10011010010.
Có 5 số 1, vậy nghĩa là cộng tất cả các chữ số 1 và 0 lại bằng 5.

Đáp án

Java

Codewars đáp án result

Đáp án khác

Codewars đáp án result

Subqueries Master

Tên có 3 chữ, ví dụ như Harry James Potter. Lấy Harry James là firstname, Potter là lastname.

Tên có 2 chữ, ví dụ như Harry Potter. Lấy Harry là firstname, Potter là lastname.

Đáp án

Codewars đáp án result