Menu
CoddyTech

Toán tử trên dãy

Thuộc phần Kiến thức nền tảng trong hành trình Kotlin của Coddy. Bài học 81 trên 93.

Kotlin cung cấp toán tử + để kết hợp các danh sách, giúp bạn dễ dàng gộp các tập hợp lại với nhau. Cách này hoạt động tương tự như khi bạn nối các chuỗi.

Để gộp hai danh sách thành một, bạn chỉ cần dùng toán tử +:

val first = listOf(1, 2, 3)
val second = listOf(4, 5, 6)
val combined = first + second
println(combined)  // [1, 2, 3, 4, 5, 6]

Bạn cũng có thể thêm một phần tử vào danh sách bằng cùng toán tử:

val colors = listOf("Red", "Green")
val moreColors = colors + "Blue"
println(moreColors)  // [Red, Green, Blue]

Toán tử - xóa các phần tử khỏi danh sách. Nó tạo một danh sách mới không có phần tử được chỉ định:

val numbers = listOf(1, 2, 3, 2, 4)
val result = numbers - 2
println(result)  // [1, 3, 2, 4]

Lưu ý rằng chỉ lần xuất hiện đầu tiên của phần tử bị xóa. Để xóa tất cả phần tử trùng khớp, bạn có thể trừ một danh sách như sau:

val numbers = listOf(1, 2, 3, 2, 4)
val result = numbers - listOf(2)
println(result)  // [1, 3, 4]

Các toán tử này luôn trả về một danh sách mới: các danh sách ban đầu vẫn không thay đổi. Bạn có thể dùng chúng an toàn mà không phải lo vô tình sửa đổi dữ liệu.

challenge icon

Thử thách

Trung bình

Bạn sẽ nhận được hai danh sách số nguyên và một số nguyên cần xóa. Kết hợp hai danh sách bằng toán tử +, sau đó xóa mọi lần xuất hiện của số nguyên đã cho bằng toán tử - với một danh sách.

In ra danh sách kết quả.

Định dạng đầu vào:

  • Dòng đầu tiên: một số nguyên n biểu thị số phần tử trong danh sách thứ nhất
  • n dòng tiếp theo: các số nguyên của danh sách thứ nhất
  • Dòng tiếp theo: một số nguyên m biểu thị số phần tử trong danh sách thứ hai
  • m dòng tiếp theo: các số nguyên của danh sách thứ hai
  • Dòng cuối cùng: số nguyên cần xóa khỏi danh sách đã kết hợp

Định dạng đầu ra:

In ra danh sách kết quả theo định dạng danh sách mặc định của Kotlin.

Ví dụ:

Nếu danh sách thứ nhất là [1, 2, 3], danh sách thứ hai là [2, 4, 2] và số cần xóa là 2, danh sách kết hợp sẽ là [1, 2, 3, 2, 4, 2]. Sau khi xóa mọi lần xuất hiện của 2, đầu ra sẽ là:

[1, 3, 4]

Tự làm thử

fun main() {
    // Đọc danh sách thứ nhất
    val n = readLine()!!.toInt()
    val list1 = mutableListOf<Int>()
    repeat(n) {
        list1.add(readLine()!!.toInt())
    }
    
    // Đọc danh sách thứ hai
    val m = readLine()!!.toInt()
    val list2 = mutableListOf<Int>()
    repeat(m) {
        list2.add(readLine()!!.toInt())
    }
    
    // Đọc số nguyên cần xóa
    val toRemove = readLine()!!.toInt()
    
    // TODO: Viết code của bạn vào đây
    // Gộp hai danh sách bằng toán tử +
    // Xóa mọi phần tử có giá trị bằng toRemove bằng toán tử - và một danh sách
    
    // In ra danh sách kết quả
    println(result)
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Playground Kotlin