LeetCode字符串判断是否循环的刷题笔记解析

需积分: 9 0 下载量 48 浏览量 更新于2024-10-26 收藏 95KB ZIP 举报
资源摘要信息:"LeetCode判断字符串是否循环" 知识点总结: 1. LeetCode平台介绍 LeetCode是一个在线编程平台,常用于程序员的算法和数据结构练习,以及准备技术面试。平台提供了大量编程题目供用户练习,覆盖了从简单到困难的各个等级。用户可以在LeetCode上通过编写代码并提交来测试自己的解题能力。该平台还支持多种编程语言,包括但不限于Python, Java, C++, C#等。 2. 字符串循环判断问题 在LeetCode上,存在一类题目要求判断一个字符串是否包含循环,或者判断字符串是否可以由重复的子串组成。这类问题可以通过多种编程方法解决,如使用KMP算法、Z算法或者简单的字符串遍历等。 3. Java编程中的数组操作 在Java编程语言中,数组是一种数据结构,用于存储固定大小的同类型元素。在上述描述中提到了数组操作的两种不同情况: ① 直接赋值:通过循环将原数组nums的每个元素复制到新数组tmp中,此时tmp与nums是独立的,修改tmp不会影响nums。 ② 引用赋值:将tmp直接指向nums的地址,此时tmp和nums指向同一块内存地址,它们是同一个数组,对tmp的任何修改都会反映在nums上。 4. HashSet使用 HashSet是一个不允许存储重复元素的集合,利用其元素不重复的特性,可以用来检查数组或字符串中是否存在重复元素。涉及到的方法如set.contains()用于检查元素是否已存在于集合中,set.add()用于向集合中添加元素。与HashMap相比,HashSet相当于Map中值为空的情况,即只有键(key),没有值(value)。 5. 数组排序 在解决某些算法问题时,数组排序是一种常见的技巧。使用Arrays.sort(nums)方法可以对数组进行排序,之后可以比较相邻元素来查找是否存在重复或特定模式。排序后的问题可能会变得更容易解决。 6. 字符串操作注意事项 在编程中处理字符串时,需要注意以下几点: - 使用long而非Long来表示长整型数据,因为long是基本数据类型,而Long是其对应的包装类。 - 使用s.charAt(i)而不是s.charAt[i]来获取字符串s在索引i处的字符。 - 使用s.indexOf('')来找到字符在字符串中的索引位置。 - 大写字母的ASCII码值比小写字母小32,因此在大小写转换时需要注意。 - 在需要频繁修改字符串内容的场景下,应使用StringBuilder或StringBuffer,因为它们是可变字符串,相比于String对象,可以提高性能。 7. 学习过程记录 在个人技术成长过程中,编写和维护一个刷题笔记是非常有价值的学习方法。通过记录代码、思路和学习过程中的注意事项,可以帮助回顾和巩固知识点,同时也可以分享给其他学习者。标题中提到的"notebook-code"表明这是一个关于LeetCode刷题的笔记代码集。 8. 文件名称列表 "notebook-code-master"表明这是一个版本控制下的代码库的主版本目录名称,可能包含了不同题目的代码解决方案。 综上所述,这些内容涵盖了在编程特别是算法和数据结构练习中,需要掌握的各类基础知识点和编程技巧,以及如何在实际问题中应用这些知识,例如在LeetCode这样的在线编程平台上,通过编写和测试代码来解决实际问题。同时,也强调了记录学习过程和经验的重要性。