LeetCode刷题总结:字符串、链表、哈希表与队列

需积分: 0 1 下载量 142 浏览量 更新于2024-08-03 收藏 5KB MD 举报
"这篇文档是作者在刷LeetCode过程中对一些关键数据结构和算法的总结,主要包括String字符串操作、LinkedList、HashTable以及Queue和Stack的基本知识和常见用途。" LeetCode是一个广泛使用的在线平台,用于练习和提升编程技能,特别是解决算法问题。这篇总结文档涵盖了在LeetCode中经常遇到的基础数据结构和操作,对于准备面试或提高编程能力的人来说非常有价值。 ### 06.String字符串主要函数与方法 字符串在编程中扮演着核心角色,特别是在处理文本数据时。在LeetCode中,理解字符串操作是至关重要的。文档中可能提到了以下常见方法: - `length()`: 获取字符串长度。 - `charAt(index)`: 返回指定索引位置的字符。 - `substring(startIndex, endIndex)`: 提取字符串的一部分,从开始到结束索引。 - `indexOf(substring)`: 查找子字符串首次出现的位置。 - `lastIndexOf(substring)`: 查找子字符串最后一次出现的位置。 - `concat(string2)`: 连接两个字符串。 - `trim()`: 去除字符串两端的空白字符。 - `split(regex)`: 使用正则表达式分割字符串成数组。 - `toLowerCase()`/`toUpperCase()`: 将字符串转换为小写/大写。 - `replace(oldChar, newChar)`: 替换所有旧字符为新字符。 - `compareTo(String anotherString)`: 比较字符串的字典顺序。 ### 08.LinkedList LinkedList是一种线性数据结构,它允许高效地在链表的中间插入和删除元素。在LeetCode中,LinkedList常用于解决涉及动态构建和遍历序列的问题。链表节点通常包含数据和指向下一个节点的引用。常见的操作有: - `add(index, element)`: 在指定位置插入元素。 - `remove(index)`: 删除指定位置的元素。 - `get(index)`: 返回指定索引处的元素。 - `size()`: 返回链表中元素的数量。 - `append(element)`: 在链表末尾添加元素。 - `insertFirst(element)`/`insertLast(element)`: 在链表开头/末尾插入元素。 - `reverse()`: 反转链表。 ### 09.HashTable HashTable是一种数据结构,它通过哈希函数快速查找和存储键值对。在LeetCode中,HashTable常用于解决查找、去重、集合操作等问题。关键操作包括: - `put(key, value)`: 添加键值对。 - `get(key)`: 根据键获取对应的值。 - `containsKey(key)`: 检查键是否存在。 - `remove(key)`: 删除键值对。 - `size()`: 返回键值对数量。 - `clear()`: 清空整个哈希表。 ### 10.Queue Queue是一种先进先出(FIFO)的数据结构。在LeetCode中,队列常用于模拟任务调度、层次遍历等问题。主要操作: - `enqueue(element)`: 在队列尾部添加元素。 - `dequeue()`: 移除并返回队列头部的元素。 - `peek()`: 返回但不移除队列头部的元素。 - `isEmpty()`: 检查队列是否为空。 ### 11.Stack Stack是一种后进先出(LIFO)的数据结构,常用于回溯、括号匹配等问题。常见操作: - `push(element)`: 在栈顶添加元素。 - `pop()`: 移除并返回栈顶元素。 - `peek()`: 查看但不移除栈顶元素。 - `isEmpty()`: 检查栈是否为空。 通过熟练掌握这些基本数据结构和它们的操作,可以更有效地解决LeetCode中的算法问题。在实际编程挑战中,理解何时使用哪种数据结构以及如何高效地利用其特性至关重要。不断地实践和总结,如该文档所示,是提升算法技能的有效途径。