当前位置: 面试刷题>> 从集合中插入或移除元素 (经典算法题500道)


题目描述补充

题目:从集合中插入或移除元素

给定一个初始为空的可变集合(在编程中,可以是数组、列表、集合等数据结构,具体取决于语言),你需要实现两个基本操作:

  1. 插入元素:将一个新元素添加到集合中,如果该元素已存在,则不进行任何操作。
  2. 移除元素:从集合中移除一个元素,如果该元素不存在,则不进行任何操作。

最后,需要提供一个方法或函数来验证集合的当前状态(例如,打印出集合中的所有元素)。

示例代码

PHP 示例

class MySet {
    private $elements;

    public function __construct() {
        $this->elements = array();
    }

    public function insert($element) {
        if (!in_array($element, $this->elements)) {
            $this->elements[] = $element;
        }
    }

    public function remove($element) {
        $key = array_search($element, $this->elements);
        if ($key !== false) {
            unset($this->elements[$key]);
            $this->elements = array_values($this->elements); // Reindex array
        }
    }

    public function printSet() {
        print_r($this->elements);
    }
}

// 使用示例
$set = new MySet();
$set->insert(1);
$set->insert(2);
$set->insert(2); // 重复插入,不应改变集合
$set->remove(1);
$set->printSet(); // 输出: Array ( [0] => 2 )

Python 示例

class MySet:
    def __init__(self):
        self.elements = set()

    def insert(self, element):
        self.elements.add(element)

    def remove(self, element):
        if element in self.elements:
            self.elements.remove(element)

    def print_set(self):
        print(self.elements)

# 使用示例
set_obj = MySet()
set_obj.insert(1)
set_obj.insert(2)
set_obj.insert(2)  # 重复插入,不应改变集合
set_obj.remove(1)
set_obj.print_set()  # 输出: {2}

JavaScript 示例

class MySet {
    constructor() {
        this.elements = new Set();
    }

    insert(element) {
        this.elements.add(element);
    }

    remove(element) {
        this.elements.delete(element);
    }

    printSet() {
        console.log(this.elements);
    }
}

// 使用示例
const setObj = new MySet();
setObj.insert(1);
setObj.insert(2);
setObj.insert(2); // 重复插入,不应改变集合
setObj.remove(1);
setObj.printSet(); // 输出: Set(1) {2}

码小课网站中有更多相关内容分享给大家学习,包括算法设计、数据结构、编程技巧等,适合不同水平的编程爱好者。

推荐面试题