Câu hỏi phỏng vấn Javascript
Câu hỏi

Hãy viết một hàm có tên lucky_sevens nhận một mảng các số nguyên và trả về giá trị true nếu ba phần tử liên tiếp bất kỳ có tổng bằng 7?

Câu trả lời

Để viết một hàm có tên lucky_sevens nhận một mảng các số nguyên và trả về giá trị true nếu ba phần tử liên tiếp bất kỳ có tổng bằng 7, bạn có thể thực hiện như sau:

javascript Copy
function lucky_sevens(arr) {
    // Kiểm tra nếu mảng có ít hơn 3 phần tử thì không thể có 3 phần tử liên tiếp có tổng bằng 7
    if (arr.length < 3) return false;

    // Duyệt qua mảng, bắt đầu từ chỉ số 0 đến chỉ số length - 3
    for (let i = 0; i < arr.length - 2; i++) {
        // Tính tổng của ba phần tử liên tiếp
        let sum = arr[i] + arr[i + 1] + arr[i + 2];
        // Nếu tổng bằng 7, trả về true
        if (sum === 7) return true;
    }

    // Nếu không tìm thấy ba phần tử liên tiếp nào có tổng bằng 7, trả về false
    return false;
}

Giải thích:

  • Hàm lucky_sevens nhận vào một mảng arr.
  • Đầu tiên, kiểm tra nếu mảng có ít hơn 3 phần tử thì không thể có ba phần tử liên tiếp có tổng bằng 7, do đó trả về false.
  • Sử dụng một vòng lặp for để duyệt qua mảng từ phần tử đầu tiên đến phần tử áp chót thứ hai (vì ta cần ba phần tử để tính tổng).
  • Trong mỗi lần lặp, tính tổng của ba phần tử liên tiếp bắt đầu từ phần tử thứ i.
  • Nếu tổng bằng 7, trả về true.
  • Nếu vòng lặp kết thúc mà không tìm thấy ba phần tử liên tiếp nào có tổng bằng 7, trả về false.

Lưu ý: Mã giả định rằng mảng đầu vào chỉ chứa các số nguyên.

middle

middle

Gợi ý câu hỏi phỏng vấn

senior

Closure trong javascript là gì, cho ví dụ?

middle

Sự khác biệt giữa null, undefined hoặc undeclared trong Javascript là gì?

middle

Kết quả đoạn code sau là gì? Hãy giải thích tại sao?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào